I07 Vorbereitung des JavaCryptoCoin

Die Blockchain in 9 Schritten – Teil 7: Vorbereitung des JavaCryptoCoin

Diese Seite ist anders als die übrigen Kapitel dieser Reihe, denn es gibt kein lauffähiges Programm und auch keine Konsolenausgabe. Da aber der Schritt von Teil 6 zum funktionsfähigen elektronischen Geld eine Menge Erläuterungen bedarf, teile ich die Informationen auf zwei Teile auf.

Unsere elektronische Währung wird in einer Geldbörse, dem „Wallet“, aufbewahrt. Leider verschwindet das Geld und das Wallet sobald unser Programm beendet wird, daher kümmere ich mich jetzt um eine Speichermöglichkeit. Zum Glück sind alle Daten in eigenen Klassen strukturiert, so das die Speicherung mit minimalem Aufwand programmiert werden kann. Ich nutze einen „FileOutputStream“ in Verbindung mit einem „ObjektOutputStream“, um die Daten komplett auf die Festplatte zu schreiben und mit den „Input-Stream“-Varianten wieder einzulesen:

Damit die Auslagerung auf diese Weise funktioniert benötigen unsere Klassen noch etwas Vorbereitung, wie wir an der veränderten Block-Klasse sehen. Die Klasse importiert und implementiert „Serializable“ und hat eine (von Eclipse generierte) eindeutige Seriennummer. Weiterhin ist die Zahl der Datenfelder deutlich erhöht und wir nehmen die Ergänzung einer Transaktion mit in die Klasse auf:

Unsere StringUtil-Klasse wird geringfügig ergänzt, damit wir alle String relevanten Funktionen in der Klasse vereinen können:

Die letzte Klasse in diesem Teil ist unsere Wallet-Klasse, welches zwei neue Methoden erhalten hat. Zum Einen wird der aktuelle „Kontostand“ oder Inhalt der Geldbörse berechnet, zum zweiten kann ich nun meine neue Währung von diesem Wallet in eine andere Geldbörse übertragen. Eine kleine Erläuterung noch zur Errechnung des Kontostandes: Die Blockchain-Technologie zeichnet sich gerade dadurch aus, das es keine zentrale Verwaltung oder auch „Bank“ gibt, sondern das alle Transaktionen in der Blockchain gespeichert werden und die Blockchain auf viele Rechner dupliziert wird. Damit kann eine neue Transaktion an verschiedenen Orten „zuerst“ auftauchen und später durch die Synchronisation auch mich und meine Geldbörse erreichen. Damit gibt es aber keine „richtige“ Geldbörse, bei der ein Blick in Portemonnaie ausreicht. Zur Ermittlung meines „Kontostandes“ bin ich darauf angewiesen, stets die komplette Blockchain auf Transaktionen durchzusehen, die mein Wallet betreffen:

 

 

Weiter geht es mit Teil 8: I08 Der JavaCryptoCoin.

Alle Quellcodes zur Blockchain findet Ihr zum Download in meinem Github-Repository, welches Ihr über diesen Link erreicht: https://github.com/java-crypto/I-Blockchain. Alle Programme sind sowohl unter Java 8 als auch unter Java 11 lauffähig.

Die Lizenz zum obigen Beispiel findet Ihr auf der eigenen Lizenz-Seite.

Letzte Aktualisierung: 12.06.2019