Streaming vidéo décentralisé et sans confiance utilisant les canaux de paiement Bitcoin
Streamium est une application de streaming vidéo payante entièrement décentralisée. Il exploite diverses technologies antérieures telles que Bitcoin et WebRTC pour obtenir un streaming vidéo sans confiance, avec paiement à l'utilisation, sans intermédiaires.
Les créateurs de contenu proposent leurs services de streaming en échange de bitcoins via un canal de paiement avec le client, diffusant ainsi une série de transactions gratuites et sans risque de contrepartie.
Pour exécuter Streamium, servez simplement le répertoire racine à l’aide de n’importe quel serveur Web. Par exemple:
cd streamium/ bower install npm install node server.js & node ssl_peerjs.js &
puis accédez-y depuis n'importe quel navigateur prenant en charge WebRTC :
https://localhost:8443/
L'utilisateur de diffusion crée une chaîne en spécifiant un nom à utiliser (ce sera un identifiant unique pour le flux vidéo). Elle doit fournir une adresse de paiement à laquelle les fonds seront finalement envoyés et le taux auquel elle s'attend à ce que les consommateurs du flux paient. Elle recevra un lien à partager avec les consommateurs potentiels du stream.
Pour les utilisateurs grand public, l'application Web rejoindra le canal en ouvrant une connexion peer to peer avec le fournisseur. L'écran affichera le tarif facturé par le fournisseur, la clé publique du fournisseur et une adresse de financement.
L'application Web grand public générera une clé privée et affichera une adresse à l'écran afin que l'utilisateur puisse financer la chaîne. Après détection d'une transaction ajoutant des fonds à cette adresse, le canal de paiement est établi en demandant au serveur de signer la transaction de remboursement et en diffusant la transaction d'engagement.
Lorsque le serveur reçoit la transaction d'engagement et est prêt à commencer la diffusion, la transmission de la vidéo vers cet utilisateur démarre. L'utilisateur transmettra périodiquement au serveur les transactions signées par lui (comme la signature de chèques qui ne seront pas encaissés) où chaque transaction incrémente progressivement le montant payé au serveur. Lorsque l'utilisateur arrête de payer ou que la connexion est perdue, le serveur arrêtera la transmission et diffusera le dernier paiement reçu.
Streamium est une application Web HTML statique et ne nécessite donc aucun serveur pour s'exécuter.
AngularJS a été utilisé pour le code d'application côté client (et il n'y a pas de code côté serveur !)
WebRTC est un protocole de communication de navigateur à navigateur utilisé pour partager des flux vidéo entre clients et fournisseurs de services. Il permet le partage de données et de médias sans serveurs centraux. Nous utilisons PeerJS pour gérer les connexions WebRTC.
Bitcoin est une monnaie p2p utilisée pour les paiements sans confiance. Les canaux de paiement Bitcoin sont utilisés pour établir un mécanisme de paiement sécurisé sans recours à un tiers.
Code publié sous licence MIT.
Copyright 2015 Développeurs Streamium