BitcoinJ

In der Rubrik Bitcoin habe ich Euch einige Beispiele zur Nutzung des Bitcoins gegeben. Wenn Ihr Euch weitergehend mit dem Thema „Bitcoin“ in Verbindung mit Java beschäftigen wollt, werdet Ihr nicht umhinkommen, dafür eine fertige Java-Bibliothek zu nutzen.

Wenn Ihr selber auf die Suche geht, findet Ihr schnell viele Referenzen zur Bibliothek „BitcoinJ“ und auch viele Beispiele. Leider hat sich die Bibliothek über die Jahre und Versionsnummern immer wieder verändert und die Folge davon ist, das sehr viele Beispiele im Netz nicht mehr funktionieren. Weiterhin benötigt die Bibliothek einen ganzen Strauss an externen JAR-Bibliotheken und es kann sehr mühevoll sein, sie alle zusammenzubekommen.

Aus diesem Grund habe ich mich entschieden, Euch alle Beispiele im Paket mit den externen Bibliotheken in meinem „Github-Repository BitcoinJ“ anzubieten. Damit seid Ihr in der Lage, alle Beispiele direkt auszuprobieren.

BitcoinJ 01 Adresse aus Publickey: wir erzeugen mit (netto) 3 Zeilen Programmcode unsere erste Adresse im Bitcoin-Testnetzwerk.

BitcoinJ 02 Wallet Erzeugung: Zur besseren Verwaltung Eurer Adressen (und einhergehend Euer Guthaben) verwendet Ihr eine Geldbörse oder Wallet.

BitcoinJ 02a Dump Wallet: Mit dieser kleinen Anwendung schaut Ihr „mal eben“ in Euer Wallet hinein und erhaltet eine Übersicht über die gespeicherten Guthaben und Schlüssel.

BitcoinJ 02b Dump Wallet komplett: der vorige Artikel hat Euch schon einen guten Überblick über Euer Wallet verschfft, mit diesem Programm erhalten Ihr den kompletten Einblick inklusive des Seeds und der privaten Schlüssel.

BitcoinJ 03 Daten aus einem Wallet auslesen: Die Ausgabe der Wallet-Daten als „Dump“ ist gut für einen schnellen Überblick, wer aber die verschiedenen Daten (wie z.B. das Guthaben oder einzelne Transaktionen) mit einem Programm auswerten muss bekommt in diesem Beispiel das notwendige „Futter“ für die Programmierung.

BitcoinJ 03 Daten aus einem Wallet auslesen Extended: diese erweiterte Routine gibt noch viel mehr Daten zu den Transaktionen aus.

BitcoinJ 04 Wallet online: Hier verbinden wir unser Wallet das erste Mal mit dem Internet und aktualisieren es nahezu „live“.

BitcoinJ 05 Erzeuge Watching Wallet: ein Watching Wallet ist ein spezielles Wallet, welches für Überwachungsaufgaben zuständig ist (z.B. auf einem Webserver, aber selber keine Transaktionen ausführen soll oder darf.

BitcoinJ 05 Create Watching Wallet En: es ist dasselbe Programm wie „BitcoinJ 05 Erzeuge Watching Wallet“, ist aber in Englisch geschrieben.

BitcoinJ 06 Erzeuge eine Transaktion: nun werden wir aktiv und senden Bitcoins aus unserem Wallet an eine andere Adresse.

BitcoinJ 07 Zeige Transaktionen: Das Wallet speichert brav die Transaktionen ab, welche zu unserem Wallet und den darin gespeicherten Adressen gehören. Dieses Programm zeigt die Transaktionen an.

BitcoinJ 07 Zeige Transaktionen Tab: eine etwas andere Darstellung der Transaktionen bietet dieses Programm: alle Daten werden tabellarisch angeordnet.

BitcoinJ Merkle Tree: da Euch im Zusammenhang mit dem Bitcoin häufiger der Begriff „Merkle Tree“ oder „Hash-Baum“ begegnen wird zeige ich Euch hier die Funktionsweise an einem einfachen Modell.

Alle Quellcodes zum Bitcoin findet Ihr zum Download in meinem Github-Repository BitcoinJ, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/BitcoinJ. Alle Programme sind unter Java 11 lauffähig (vermutlich auch unter Java 8) und wurden mit intelliJ IDEA entwickelt, welches für dieses Programm aber nicht notwendig ist.

Weiterhin benötigt Ihr diverse Bibliotheken zur Nutzung von BitcoinJ – ladet Euch diese aus dem separaten Github-Archiv (https://github.com/java-crypto/BitcoinJ_Libraries) herunter und bindet Sie über Eure Entwicklungsumgebung ein.

Letzte Bearbeitung: 06.05.2020