Blockchain im Handumdrehen meistern Teil 2 – Implementierung von PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Blockchain im Handumdrehen meistern Teil 2 – Implementierung

Purbaryandi

In dieser Artikelserie erstellen wir in weniger als 5 Minuten eine vereinfachte Kryptowährung, die auf einer einfachen Blockchain-Implementierung in Golang basiert. Sie müssen zuerst Golang installieren, um dieses Projekt zu erstellen. Als Texteditor können Sie alles verwenden, hier verwende ich Visual Studio-Code.

Blockchain im Handumdrehen meistern Teil 2 – Implementierung von PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.
Quelle: Bitdegree

Hast du es installiert? Okay, lass es uns tun!

Wenn Sie das Projekt erstellt haben, erstellen Sie eine Datei main.go . Ok, lass uns programmieren, zuerst beginnen wir mit main.go. Beginnen wir mit dem Strukturblock-Teil von „Blockchain“. In der Blockchain sind es Blöcke, die wertvolle Informationen speichern. Beispielsweise speichern Bitcoin-Blocks Transaktionen, die das Wesen jeder Kryptowährung darstellen. Darüber hinaus enthält ein Block einige technische Informationen, wie seine Version, den aktuellen Zeitstempel und den Hash des vorherigen Blocks. In diesem Artikel werden wir den Block nicht so implementieren, wie er in den Blockchain- oder Bitcoin-Spezifikationen beschrieben ist, sondern stattdessen eine vereinfachte Version davon verwenden, die nur wichtige Informationen enthält. So sieht es aus. Hier haben wir einen Strukturblock:

Typ Blockstruktur {

Timestamp ist der aktuelle Zeitstempel (wenn der Block erstellt wird), transactions ist die tatsächlich im Block enthaltene wertvolle Information, prevhas speichert den Hash des vorherigen Blocks und Hash ist der Hash des Blocks. In der Bitcoin-Spezifikation Timestamp, prevhash und Hash sind Blockheader, die eine separate Datenstruktur bilden, und Transaktionen (transaction in unserem Fall) ist eine separate Datenstruktur. Der Einfachheit halber mischen wir sie hier.

Wie berechnen wir also die Hashes? Die Art und Weise, wie Hashes berechnet werden, ist ein sehr wichtiges Merkmal der Blockchain, und es ist dieses Merkmal, das die Blockchain sicher macht. Die Sache ist, dass die Berechnung eines Hashs ein rechentechnisch schwieriger Vorgang ist, der selbst auf schnellen Computern einige Zeit in Anspruch nimmt (deshalb kaufen die Leute leistungsstarke GPUs, um Bitcoin zu schürfen). Dabei handelt es sich um einen bewussten architektonischen Entwurf, der das Hinzufügen neuer Blöcke erschwert und so deren Änderung nach dem Hinzufügen verhindert. Wir werden diesen Mechanismus in einem zukünftigen Artikel diskutieren und implementieren.

Im Moment nehmen wir einfach Blockfelder, verketten sie und berechnen einen SHA-256-Hash für die verkettete Kombination. Lass uns das machen Newhash Verfahren:

func NewHash(time time.Time, Transactions []string, prevhash []byte) []byte {

Als Nächstes implementieren wir einer Golang-Konvention folgend eine Funktion, die die Erstellung eines Blocks vereinfacht und beendet:

func Blocks(transactions []string, prevhash []byte) *Block {

Wir erstellen weiterhin eine Druckfunktion. Die Druckfunktion ist nützlich, um den Inhalt jedes Blocks zu drucken, der eine Transaktion ausführt. hier ist der Code:

func Print(block *Block) {

Und Funktionstransaktion für Drucktransaktion:

func Transaction(block *Block) {

Nachdem alle erforderlichen Funktionen abgeschlossen sind, verwenden wir es in der Hauptfunktion:

func main () {

Okay, der ganze Code, den wir fertig geschrieben haben. Lassen Sie es uns ausführen, indem Sie im Terminal „go run main.go“ eingeben. Ausgabe :

Zusammenfassung

Wir haben einen sehr einfachen Blockchain-Prototyp erstellt: Es handelt sich lediglich um eine Reihe von Blöcken, wobei jeder Block eine Verbindung zum vorherigen hat. Die eigentliche Blockchain ist jedoch viel komplexer. In unserer Blockchain ist das Hinzufügen neuer Blöcke einfach und schnell, aber in der echten Blockchain erfordert das Hinzufügen neuer Blöcke einige Arbeit: Man muss einige umfangreiche Berechnungen durchführen, bevor man die Erlaubnis zum Hinzufügen von Blöcken erhält (dieser Mechanismus wird Proof-of-Work genannt). Außerdem ist Blockchain eine verteilte Datenbank, die keinen einzigen Entscheidungsträger hat. Daher muss ein neuer Block von anderen Teilnehmern des Netzwerks bestätigt und genehmigt werden (dieser Mechanismus wird als Konsens bezeichnet). Und es gibt noch keine Transaktionen in unserer Blockchain!

Source: https://medium.com/@purbaryandi/mastering-blockchain-in-no-time-part-2-implementation-433dc7967fe8?source=rss——cryptocurrency-5

Zeitstempel:

Mehr von Medium