BitcoinJ 03 Daten aus einem Wallet auslesen

In den beiden Beispielen BitcoinJ 02a Dump eines Wallets und BitcoinJ 02b Dump Wallet komplett haben wir bereits die Daten eines Wallets ausgelesen und als „Dump“ auf den Bildschirm gebracht. Dieses Beispiel wird Euch zeigen, wie Ihr die wichtigsten Daten rund um Euer Wallet auslesen könnt, wie z.B. das vorhandene Guthaben („Balance“) oder die genauen Daten jeder einzelnen Transaktion („transaction“).

Als Basis hierfür nehmen wir das im Beispiel BitcoinJ 02 Wallet Erzeugung auf der Festplatte gespeicherte Wallet und schauen es uns hiermit an. Da wir uns zum jetzigen Zeitpunkt alleine auf die im Wallet gespeicherten Daten verlassen, sind nach der Erzeugung keinerlei Guthaben oder Transaktionen sichtbar – die kommen erst später ins Wallet hinein.

Die Online-Anbindung an die Bitcoin-Blockchain werden wir hier nicht machen, das werde ich in einem späteren Artikel beschreiben. Damit Ihr den Artikel nachvollziehen könnt, solltet Ihr mein Demonstrations-Wallet „bitcoinj02createwalletW.wallet“ nebst zugehöriger SPV-Datei „bitcoinj02createwalletW.spvchain“ aus dem Github-Archiv (https://github.com/java-crypto/BitcoinJ) herunterladen und damit dieses Beispiel nachvollziehen. Ein Hinweis hierzu: bei diesem Wallet handelt es sich um ein „Watching Wallet“, d.h. es sind keine privaten Schlüssel hinterlegt und Ihr könnt damit keine Transaktionen ausführen.

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.

Ich zeige Euch zuerst die Konsolenausgabe und nachfolgend dann den Sourcecode. Ihr solltet Euch über die Bedeutung der verschiedenen Guthaben („Balances“) einlesen, denn z.B. erst ein „Available“ = verfügbares Guthaben kann auch wieder abverfügt werden. Auch die verschiedenen „Value“ = Beträge solltet Ihr Euch näher ansehen, Links findet Ihr z.B. in meinem Bitcoin-Linkarchiv.

Sourcecode:

Wenn Ihr noch mehr Daten auslesen möchtet nutzt einfach die erweiterte Version, BitcoinJ 03 Daten aus einem Wallet auslesen Extended.

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.

Noch ein Wort zum Thema „Lizenz“: Die von mir erstellten Beispiele selber stehen unter der „Unlicense“-Lizenz, allerdings werden zur Laufzeit diverse Bibliotheken eingebunden, welche zum Teil ganz eigene Lizenzen mitbringen. Darauf kann ich in meinen Lizenzhinweisen nicht hinweisen.

Letzte Bearbeitung: 18.03.2020