Skip to content

Guia de Integração

Aprenda a integrar os recursos do OikosTV em seus próprios aplicativos usando nosso SDK oficial.

O @crewvid/outpost-sdk

Nosso SDK é projetado para facilitar que desenvolvedores construam aplicativos que interajam com a rede peer do OikosTV. Ele gerencia tarefas complexas como busca de fragmentos, descriptografia AES e rastreamento de recompensas automaticamente.

Instalação

bash
npm install @crewvid/outpost-sdk

Implementação Básica

Inicialize o cliente e ouça eventos para construir experiências interativas.

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

// Inicialize o cliente com suas credenciais e cota de armazenamento
const client = new CrewOutpostClient({
  apiKey: 'your_api_key',
  storageQuota: 50, // em GB
});

// Ouça eventos para atualizar sua interface ou acionar ações
client.on('chunkServed', (data) => {
  console.log(`Fragmento servido com sucesso: ${data.chunkId}`);
});

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

Recursos Principais

Busca Automatizada de Fragmentos

O SDK gerencia a lógica complexa de encontrar e buscar fragmentos de vídeo de múltiplos peers em ordem, caindo de volta para o armazenamento B2 se necessário.

Prioridade de busca:

  1. Tentar WebRTC para cada peer na ordem do manifest
  2. Em caso de falha, passar para o próximo peer
  3. Após esgotar todos os peers, buscar da URL de fallback B2
  4. Somente então emitir erro

Descriptografia Fluida

A descriptografia AES-256-GCM integrada garante que o conteúdo seja descriptografado em tempo real de forma segura e eficiente usando a Web Crypto API.

  • Usa crypto.subtle exclusivamente (sem Node.js crypto)
  • O nonce é extraído dos primeiros 12 bytes do ciphertext
  • Dados descriptografados nunca são persistidos no armazenamento

Melhores Práticas

  • Tratamento de Erros: Sempre trate erros de rede e desconexões de peers de forma elegante para garantir uma experiência de usuário fluida
  • Gerenciamento de Recursos: Esteja atento à cota de armazenamento definida na configuração do seu cliente para evitar uso inesperado do disco
  • Segurança: Nunca codifique chaves API ou credenciais sensíveis diretamente no seu código frontend; use variáveis de ambiente seguras ou proxies backend
  • Session JWT: O sessionJWT nunca deve tocar localStorage, sessionStorage, IndexedDB ou cookies — mantenha-o apenas na memória

Segurança

Nunca registre, retorne ou persista chaves de criptografia brutas fora do vault. Isso se aplica tanto ao código do lado do servidor quanto ao uso do SDK do navegador.