BitcoinJ Client WalletTemplate V2

Das vorige Beispiel BitcoinJ Client WalletTemplate V1 sollte laut der Entwickler lediglich einen Rumpf für eigene Anwendungen bieten. Ihr findet die Rumpfvorlage im BitcoinJ-GitHub-Repository über den Link https://github.com/bitcoinj/bitcoinj/tree/master/wallettemplate/src/main.

Hier zeige ich Euch „nur“ die Programmansicht, die Quellcode-Dateien findet Ihr komplett in meinem GitHub-Archiv https://github.com/java-crypto/BitcoinJ-Clients/tree/master/BitcoinJ%20Client%20WalletTemplate%20V1.

Zur Nutzung 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.

Ein Hinweis noch zur Walletdatei – der Dateiname wird aus der Definition in der Klasse Main.java in der Zeile 81 entnommen und um das jeweilige Bitcoin-Netz ergänzt, so das der vollständige Dateiname „WalletTemplate-test.wallet“ lautet.

Wie in Version 1 wird erst mit dem Netzwerk synchronisiert, aber schon jetzt sieht man die bisherigen Transaktionen des Wallets:

Nach der Synchronisierung ist das Programm einsatzfähig:

Über den Button „Settings“ erhaltet Ihr Zugriff auf die 12 magischen Wörter („Mnemonic Codes“), die Ihr bei einer Rekonstruktion des Wallets benötigt (hier aus Sicherheitsgründen ausgeblendet):

Weiterhin kann das Wallet verschlüsselt werden (was bei einem Wallet mit echten Bitcoins auf jeden Fall gemacht werden sollte!):

Nach dem Klick auf „Set password“ ist die Verschlüsselung aktiv und nun muss bei jeder Sendetransaktion das Passwort eingegeben werden:

Kommen wir nun zum Geldversand: nach dem Klick auf „send money out“ gebe ich den Betrag und die Empfangsadresse ein und drücke auf „Send“:

Der Sendevorgang beginnt und das Programm bzw. das Wallet verbindet sich mit den Peers, um die Transaktion zu senden:

Sobald die Mindestanzahl (hier 10) Peers die Transaktion erhalten haben taucht die Zahlung in der Übersicht aus:

Die angezeigte Transaktions-Id kann ich in die Suchmaske eines Bitcoin Testnet Explorers eingeben und sehe z.B. diese Ansicht (Direktlink):

Da viele Menschen inzwischen mit einem Handy arbeiten macht es Sinn, die eigene Empfangsadresse als QR-Code zur Verfügung zu stellen, Ihr erreicht diesen Punkt durch den Klick auf das kleine Quadrat direct unterhalb des Buchstabens „C“ von Balance … BTC in der linken oberen Ecke der Programmoberfläche:

Damit habt Ihr eine einfache grafische Benutzeroberfläche für Euer Bitcoin-Wallet und im nächsten Beispiel zeige ich Euch eine etwas komfortablere Version.

Alle Quellcodes zu den BitcoinJ Clients findet Ihr zum Download in meinem Github-Repository BitcoinJ Clients, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/BitcoinJ-Clients. 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