Skip to content

Guide d'Intégration

Apprenez à intégrer les fonctionnalités OikosTV dans vos propres applications en utilisant notre SDK officiel.

Le @crewvid/outpost-sdk

Notre SDK est conçu pour faciliter la construction d'applications qui interagissent avec le réseau peer de OikosTV. Il gère automatiquement des tâches complexes comme la récupération de fragments, le déchiffrement AES et le suivi des récompenses.

Installation

bash
npm install @crewvid/outpost-sdk

Implémentation de Base

Initialisez le client et écoutez les événements pour construire des expériences interactives.

javascript
import { CrewOutpostClient } from '@crewvid/outpost-sdk';

// Initialisez le client avec vos identifiants et quota de stockage
const client = new CrewOutpostClient({
  apiKey: 'your_api_key',
  storageQuota: 50, // en Go
});

// Écoutez les événements pour mettre à jour votre interface ou déclencher des actions
client.on('chunkServed', (data) => {
  console.log(`Fragment servi avec succès : ${data.chunkId}`);
});

client.on('rewardEarned', (amount) => {
  console.log(`Vous avez gagné ${amount} PeerCredits !`);
});

Fonctionnalités Clés

Récupération Automatisée des Fragments

Le SDK gère la logique complexe de recherche et récupération de fragments vidéo depuis plusieurs peers dans l'ordre, en revenant au stockage B2 si nécessaire.

Priorité de récupération :

  1. Essayer WebRTC pour chaque peer dans l'ordre du manifest
  2. En cas d'échec, passer au peer suivant
  3. Après épuisement de tous les peers, récupérer depuis l'URL de repli B2
  4. Émettre une erreur uniquement après cela

Déchiffrement Fluide

Le déchiffrement AES-256-GCM intégré garantit que le contenu est déchiffré à la volée de manière sécurisée et performante en utilisant la Web Crypto API.

  • Utilise crypto.subtle exclusivement (pas de Node.js crypto)
  • Le nonce est extrait des 12 premiers octets du ciphertext
  • Les données déchiffrées ne sont jamais persistées dans le stockage

Meilleures Pratiques

  • Gestion des Erreurs : Gérez toujours les erreurs réseau et les déconnexions de peers de manière élégante pour garantir une expérience utilisateur fluide
  • Gestion des Ressources : Soyez conscient du quota de stockage défini dans la configuration de votre client pour éviter une utilisation inattendue du disque
  • Sécurité : Ne codez jamais en dur les clés API ou les identifiants sensibles directement dans votre code frontend ; utilisez des variables d'environnement sécurisées ou des proxies backend
  • Session JWT : Le sessionJWT ne doit jamais toucher localStorage, sessionStorage, IndexedDB ou les cookies — gardez-le uniquement en mémoire

Sécurité

Ne jamais journaliser, retourner ou persister des clés de chiffrement brutes en dehors du vault. Cela s'applique à la fois au code côté serveur et à l'utilisation du SDK navigateur.