BitcoinJ 02 Wallet Erzeugung

Die manuelle Verwaltung von Schlüsselpaaren ist bereits nach ganz kurzer Zeit kaum noch machbar, daher verwahren wir die neuen Schlüssel in einer „Geldbörse“ oder besser einem Wallet. Dieses gilt um so mehr für die Tatsache, das inzwischen für jede Transaktion eine neue Adresse angelegt wird. Die Erzeugung einer neuen Empfangsadresse über das Wallet vollautomatisch, als einzige Voraussetzung dafür muss das Wallet als Hierarchisch deterministisches (HD) Wallet erzeugt werden.

In diesem kleinen Beispiel erzeuge ich ein Wallet (wenn es noch nicht existiert) oder ich lade ein bestehendes Wallet von der Festplatte. Danach erzeuge ich 5 neue Schlüsselpaare (zusätzlich zu den HD-Schlüsselpaaren im Wallet) und importiere sie ins Wallet. Dann frage ich ab, ob der erste neu erzeugte Schlüssel auch tatsächlich Teil des Wallets geworden 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.

Zum Schluss gebe ich das Wallet mit allen öffentlichen Schlüsseln und der verschiedenen Guthaben auf die Konsole aus.

Hier nun der Quellcode und die Konsole:

 

Wenn Ihr nachträglich einen Blick in Eurer Wallet werfen wollt empfehle ich Euch die Artikel BitcoinJ 02a Dump Wallet und BitcoinJ 02b Dump Wallet komplett.

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