Es ist möglich, nicht nur Finanztransaktionen, sondern auch fast alle Daten in die Blockchain von Bitcoin zu schreiben. Die in der Bitcoin-Blockchain aufgezeichneten Daten werden öffentlich und können kaum gelöscht oder geändert werden. Diese Funktion kann beispielsweise verwendet werden, um dezentrale Sites zu erstellen, die nicht blockiert werden können.
Mit der blockchaindata-lib-Bibliothek kann das Schreiben und Lesen von Daten in der Blockchain in nur wenigen Codezeilen organisiert werden.
Die Werkzeuge
Die blockchaindata-lib-Bibliothek ist in node.js geschrieben. Der Quellcode mit Beispielen ist unter
github.com/3s3s/blockchaindata-lib github verfügbar. Um Ihrem Projekt eine Bibliothek hinzuzufügen, führen Sie einfach einen Befehl in der Konsole aus
npm install blockchaindata-lib
Um mit der Blockchain arbeiten zu können, müssen Sie den RPC-Zugriff auf die Brieftasche von Bitcoin oder eine mit Bitcoin kompatible Gabel (Litecoin, Dogecoin usw.) konfigurieren. Standardmäßig versucht blockchaindata-lib mit den folgenden Details auf den RPC-Server zuzugreifen:
: http://127.0.0.1:18332 : rpc_btc_test : rpc_btc_password_test
Die Standardeinstellungen können über die Bibliotheksfunktion geändert werden
updateNetwork(url, user, password)
Um mit der Bibliothek arbeiten zu können, müssen Sie zunächst eine Bitcoin-Testmappe starten:
- Laden Sie die Bitcoin-Brieftasche (oder eine kompatible Gabel) herunter.
- Erstellen Sie die Datei ~ / .bitcoin / bitcoin.conf (oder in Windows% APPDATA% / Bitcoin / bitcoin.conf).
- Schreiben Sie in die Datei bitcoin.conf die folgenden Einstellungen
testnet=1 server=1 rpcbind=127.0.0.1 rpcallowip=127.0.0.1 rpcuser=rpc_btc_test rpcpassword=rpc_btc_password_test txindex=1
- Speichern Sie die Änderungen in bitcoin.conf und führen Sie bitcoind aus (oder in Windows bitcoin-qt.exe).
- Warten Sie auf die Blockchain-Synchronisation
Mit den oben genannten Einstellungen wird die Brieftasche im Bitcoin-Testnetzwerk gestartet.
Datenaufzeichnung
Bei Bitcoin sind Transaktionen verboten, bei denen keine Kosten anfallen. Bevor Sie etwas in die Bitcoin-Blockchain schreiben, müssen Sie daher unbedingt Ihre Brieftasche auffüllen. Bitcoins für ein Testnetzwerk erhalten Sie kostenlos, wenn Sie bei Google nach etwas wie "Bitcoin-Testnetzhahn" suchen. Wenn die Brieftasche aufgefüllt ist, können Sie endlich Daten aufzeichnen.
Die Bibliothek verfügt über mehrere Funktionen zum Aufzeichnen von Daten:
SaveTextToBlockchain( dataString ) SaveJSONToBlockchain( objectJSON ) SaveFileToBlockchain( data )
Was diese Funktionen im Prinzip bewirken, geht aus dem Namen hervor. Funktionsergebnis - Objekt
{Ergebnis: <wahr | false>, message: <string>, txid: <string>}
Betrachten Sie ein Verwendungsbeispiel:
'use strict'; const blockchaindata = require('blockchaindata-lib') async function test1() { try {
Wenn dieser Code fehlerfrei ausgeführt wird, wird der Transaktions-Hash in der Konsole angezeigt. Sie können die Daten aus diesem Hash lesen.
Daten lesen
Um die zuvor in der Blockchain aufgezeichneten Daten lesen zu können, müssen Sie nur den Hash der Transaktion kennen. Die Brieftasche ist möglicherweise leer. Wenn Sie also nur die Daten lesen möchten, ist das Auffüllen der Brieftasche nicht erforderlich.
Codebeispiel
'use strict'; const blockchaindata = require('blockchaindata-lib'); async function test2() {
Wenn dieser Code fehlerfrei funktioniert, wird der HTML-Text der Seite, die ich zuvor in der Blockchain gespeichert habe, in der Konsole angezeigt.
Wo bewerben?
In der Blockchain können Sie beispielsweise eine statische Site speichern. Diese Seite kann praktisch nicht gelöscht oder blockiert werden. Zum Lesen einer solchen Site benötigen Sie jedoch zusätzliche Software: einen neuen Browser oder eine neue Browsererweiterung.
Die Browser-Erweiterung ist die einfachste Lösung. Ein Beispiel für eine solche Erweiterung finden Sie hier
github.com/3s3s/blockchaindataSie können diese Erweiterung für Firefox hier herunterladen und installieren:
yadi.sk/d/a3xM9BCepP4nBwNach der Installation fängt Firefox Links zu Sites im Format ab und verarbeitet sie
http: // tbtc / <txid>
Ein solcher Link funktioniert beispielsweise unter
http: // tbtc / 8af6633160b982a0b0b4d4962ad28e0d5b3dd97e05e27cc2dd64ec0c56820df5Wirksamkeit
Die blockchaindata-lib-Bibliothek komprimiert Daten, bevor sie mithilfe des Deflate-Algorithmus in die Blockchain eingefügt werden. Daher ist diese Methode besonders effektiv zum Schreiben von Textdokumenten. Während des Tests konnte ich bis zu 70 KB komprimierte Daten in die Blockchain schreiben. Obwohl es keine Einschränkungen hinsichtlich der Größe eingehender Daten gibt, treten aufgrund der internen Implementierung von Bitcoin-Code Fehler bei großen Datenmengen auf.
Beim Schreiben von Daten in die Blockchain muss auch die finanzielle Komponente berücksichtigt werden. Das Lesen und Schreiben von Daten in das Bitcoin-Testnetzwerk mithilfe der blockchaindata-lib-Bibliothek ist einfach und kostenlos. Wenn Sie jedoch Daten in das funktionierende Netzwerk von Bitcoin schreiben möchten, müssen Sie den Preis von Bitcoin ungleich Null berücksichtigen.