Streaming de vídeo descentralizado e confiável usando canais de pagamento bitcoin
Streamium é um aplicativo de streaming de vídeo pago totalmente descentralizado. Ele aproveita várias tecnologias anteriores, como bitcoin e WebRTC, para obter streaming de vídeo pré-pago e confiável, sem intermediários.
Os criadores de conteúdo oferecem seus serviços de streaming em troca de bitcoins por meio de um canal de pagamento com o cliente, transmitindo uma série de transações gratuitas e sem risco de contraparte.
Para executar o Streamium, basta servir o diretório raiz usando qualquer servidor web. Por exemplo:
cd streamium/ bower install npm install node server.js & node ssl_peerjs.js &
e acesse-o em qualquer navegador compatível com WebRTC:
https://localhost:8443/
O usuário de transmissão cria um canal especificando um nome a ser usado (este será um identificador exclusivo para o fluxo de vídeo). Ela precisa fornecer um endereço de pagamento para onde os fundos serão eventualmente enviados e a taxa que ela espera que os consumidores do fluxo paguem. Ela receberá um link para compartilhar com potenciais consumidores do stream.
Para usuários consumidores, o aplicativo da web ingressará no canal abrindo uma conexão ponto a ponto com o provedor. A tela mostrará a taxa que o provedor está cobrando, a chave pública do provedor e um endereço de financiamento.
O aplicativo web do consumidor irá gerar uma chave privada e mostrar um endereço na tela para que o usuário possa financiar o canal. Após a detecção de uma transação que adiciona fundos a esse endereço, o canal de pagamento é estabelecido solicitando ao servidor que assine a transação de reembolso e transmita a transação de compromisso.
Quando o servidor receber a transação de compromisso e estiver pronto para iniciar a transmissão, a transmissão do vídeo para esse usuário será iniciada. O usuário transmitirá periodicamente ao servidor as transações assinadas por ele (como assinatura de cheques que não serão descontados) onde cada transação incrementa gradativamente o valor pago ao servidor. Quando o usuário parar de pagar ou a conexão for perdida, o servidor interromperá a transmissão e transmitirá o último pagamento recebido.
Streamium é um aplicativo da web HTML estático e, portanto, não requer servidores para funcionar.
AngularJS foi usado para código de aplicação do lado do cliente (e não há código do lado do servidor!)
WebRTC é um protocolo de comunicação navegador a navegador usado para compartilhar fluxos de vídeo entre clientes e provedores de serviços. Permite o compartilhamento de dados e mídia sem servidores centrais. Usamos PeerJS para gerenciar conexões WebRTC.
Bitcoin é uma moeda p2p usada para pagamentos sem confiança. Os canais de pagamento Bitcoin são usados para estabelecer um mecanismo seguro de pagamento conforme o uso, sem a necessidade de terceiros.
Código lançado sob a licença do MIT.
Copyright 2015 Desenvolvedores Streamium