Dezentrales, vertrauenswürdiges Video-Streaming über Bitcoin-Zahlungskanäle
Streamium ist eine vollständig dezentrale kostenpflichtige Video-Streaming-Anwendung. Es nutzt verschiedene frühere Technologien wie Bitcoin und WebRTC, um vertrauenswürdiges Pay-as-you-go-Videostreaming ohne Zwischenhändler zu ermöglichen.
Content-Ersteller bieten ihre Streaming-Dienste im Austausch gegen Bitcoins über einen Zahlungskanal mit dem Kunden an und streamen eine Reihe kostenloser Transaktionen ohne Kontrahentenrisiko.
Um Streamium auszuführen, stellen Sie einfach das Stammverzeichnis über einen beliebigen Webserver bereit. Zum Beispiel:
cd streamium/ bower install npm install node server.js & node ssl_peerjs.js &
und greifen Sie dann von jedem WebRTC-unterstützenden Browser darauf zu:
https://localhost:8443/
Der übertragende Benutzer erstellt einen Kanal, indem er einen zu verwendenden Namen angibt (dies ist eine eindeutige Kennung für den Videostream). Sie muss eine Zahlungsadresse angeben, an die das Geld schließlich gesendet wird, und den Satz angeben, zu dem sie von den Stream-Kunden erwartet, dass sie zahlen. Sie erhält einen Link, den sie mit potenziellen Nutzern des Streams teilen kann.
Für Verbraucherbenutzer tritt die Webanwendung dem Kanal bei, indem sie eine Peer-to-Peer-Verbindung zum Anbieter öffnet. Auf dem Bildschirm werden der vom Anbieter berechnete Preis, der öffentliche Schlüssel des Anbieters und eine Finanzierungsadresse angezeigt.
Die Verbraucher-Webanwendung generiert einen privaten Schlüssel und zeigt eine Adresse auf dem Bildschirm an, damit der Benutzer den Kanal finanzieren kann. Nachdem eine Transaktion erkannt wurde, die dieser Adresse Geld hinzufügt, wird der Zahlungskanal eingerichtet, indem der Server aufgefordert wird, die Rückerstattungstransaktion zu signieren und die Verpflichtungstransaktion zu senden.
Wenn der Server die Verpflichtungstransaktion empfängt und bereit ist, mit der Übertragung zu beginnen, beginnt die Übertragung des Videos an diesen Benutzer. Der Benutzer übermittelt in regelmäßigen Abständen von ihm unterzeichnete Transaktionen an den Server (z. B. die Unterzeichnung von Schecks, die nicht eingelöst werden), wobei jede Transaktion den an den Server gezahlten Betrag schrittweise erhöht. Wenn der Benutzer mit der Zahlung aufhört oder die Verbindung unterbrochen wird, stoppt der Server die Übertragung und sendet die letzte erhaltene Zahlung weiter.
Streamium ist eine statische HTML-Webanwendung und erfordert daher keine Server zur Ausführung.
AngularJS wurde für clientseitigen Anwendungscode verwendet (und es gibt keinen serverseitigen Code!)
WebRTC ist ein Browser-zu-Browser-Kommunikationsprotokoll, das zum Teilen von Videostreams zwischen Kunden und Dienstanbietern verwendet wird. Es ermöglicht die gemeinsame Nutzung von Daten und Medien ohne zentrale Server. Wir verwenden PeerJS, um WebRTC-Verbindungen zu verwalten.
Bitcoin ist eine P2P-Währung, die für vertrauenswürdige Zahlungen verwendet wird. Bitcoin-Zahlungskanäle werden verwendet, um einen sicheren Pay-as-you-go-Mechanismus einzurichten, ohne dass eine Drittpartei erforderlich ist.
Code unter der MIT-Lizenz veröffentlicht.
Copyright 2015 Streamium-Entwickler