Transmisión de video descentralizada y sin confianza utilizando canales de pago bitcoin
Streamium es una aplicación de transmisión de video paga totalmente descentralizada. Aprovecha varias tecnologías anteriores como bitcoin y WebRTC para lograr una transmisión de video de pago por uso confiable y sin intermediarios.
Los creadores de contenidos ofrecen sus servicios de streaming a cambio de bitcoins utilizando un canal de pago con el cliente, transmitiendo una serie de transacciones gratuitas y sin riesgo de contraparte.
Para ejecutar Streamium, simplemente proporcione el directorio raíz utilizando cualquier servidor web. Por ejemplo:
cd streamium/ bower install npm install node server.js & node ssl_peerjs.js &
y luego acceda desde cualquier navegador compatible con WebRTC:
https://localhost:8443/
El usuario que transmite crea un canal especificando un nombre a usar (este será un identificador único para la transmisión de video). Debe proporcionar una dirección de pago a la que eventualmente se enviarán los fondos y la tarifa a la que espera que paguen los consumidores de la transmisión. Recibirá un enlace para compartir con consumidores potenciales de la transmisión.
Para los usuarios consumidores, la aplicación web se unirá al canal abriendo una conexión de igual a igual con el proveedor. La pantalla mostrará la tarifa que cobra el proveedor, la clave pública del proveedor y una dirección de financiamiento.
La aplicación web para el consumidor generará una clave privada y mostrará una dirección en la pantalla para que el usuario pueda financiar el canal. Después de que se detecta una transacción que agrega fondos a esta dirección, el canal de pago se establece solicitando al servidor que firme la transacción de reembolso y transmitiendo la transacción de compromiso.
Cuando el servidor reciba la transacción de compromiso y esté listo para comenzar a transmitir, comenzará la transmisión de video a ese usuario. El usuario transmitirá periódicamente las transacciones firmadas por él al servidor (como firmar cheques que no se cobrarán), donde cada transacción incrementa gradualmente la cantidad pagada al servidor. Cuando el usuario deja de pagar, o se pierde la conexión, el servidor detendrá la transmisión y retransmitirá el último pago recibido.
Streamium es una aplicación web HTML estática y, por lo tanto, no requiere servidores para ejecutarse.
AngularJS se usó para el código de la aplicación del lado del cliente (¡y no hay código del lado del servidor!)
WebRTC es un protocolo de comunicaciones de navegador a navegador que se utiliza para compartir transmisiones de video entre clientes y proveedores de servicios. Permite compartir datos y medios sin servidores centrales. Usamos PeerJS para administrar conexiones WebRTC.
Bitcoin es una moneda p2p que se utiliza para pagos sin confianza. Los canales de pago de Bitcoin se utilizan para establecer un mecanismo seguro de pago por uso sin necesidad de un tercero.
Código publicado bajo la licencia MIT.
Copyright 2015 desarrolladores de Streamium