Skip to content

Guía de Integración

Aprende a integrar las características de OikosTV en tus propias aplicaciones usando nuestro SDK oficial.

El @crewvid/outpost-sdk

Nuestro SDK está diseñado para facilitar que los desarrolladores construyan aplicaciones que interactúen con la red peer de OikosTV. Maneja tareas complejas como la obtención de fragmentos, descifrado AES y seguimiento de recompensas automáticamente.

Instalación

bash
npm install @crewvid/outpost-sdk

Implementación Básica

Inicializa el cliente y escucha eventos para construir experiencias interactivas.

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

// Inicializa el cliente con tus credenciales y cuota de almacenamiento
const client = new CrewOutpostClient({
  apiKey: 'your_api_key',
  storageQuota: 50, // en GB
});

// Escucha eventos para actualizar tu interfaz o activar acciones
client.on('chunkServed', (data) => {
  console.log(`Fragmento servido exitosamente: ${data.chunkId}`);
});

client.on('rewardEarned', (amount) => {
  console.log(`¡Ganaste ${amount} PeerCredits!`);
});

Características Clave

Obtención Automatizada de Fragmentos

El SDK gestiona la lógica compleja de encontrar y obtener fragmentos de video de múltiples peers en orden, recurriendo al almacenamiento B2 si es necesario.

Prioridad de obtención:

  1. Intentar WebRTC para cada peer en el orden del manifest
  2. En caso de fallo, pasar al siguiente peer
  3. Después de agotar todos los peers, obtener desde la URL de respaldo B2
  4. Solo entonces emitir error

Descifrado Fluida

El descifrado AES-256-GCM integrado asegura que el contenido se descifre sobre la marcha de manera segura y eficiente usando la Web Crypto API.

  • Usa crypto.subtle exclusivamente (sin Node.js crypto)
  • El nonce se extrae de los primeros 12 bytes del cifrado
  • Los datos descifrados nunca se persisten en almacenamiento

Mejores Prácticas

  • Manejo de Errores: Maneja siempre errores de red y desconexiones de peers de manera elegante para garantizar una experiencia de usuario fluida
  • Gestión de Recursos: Ten presente la cuota de almacenamiento establecida en tu configuración del cliente para evitar un uso inesperado del disco
  • Seguridad: Nunca codifiques claves API o credenciales sensibles directamente en tu código frontend; usa variables de entorno seguras o proxies backend
  • Session JWT: El sessionJWT nunca debe tocar localStorage, sessionStorage, IndexedDB ni cookies — manténlo solo en memoria

Seguridad

Nunca registres, devuelvas o persistas claves de cifrado crudas fuera del vault. Esto aplica tanto al código del lado del servidor como al uso del SDK del navegador.