Python Blockchain erstellen

Eine Blockchain enthält eine Liste von Blöcken, die miteinander verkettet sind. Um die gesamte Liste zu speichern, erstellen wir eine Listenvariable namens TPCoins -

TPCoins = []

Wir werden auch eine Utility-Methode namens schreiben dump_blockchainzum Speichern des Inhalts der gesamten Blockchain. Wir drucken zuerst die Länge der Blockchain, damit wir wissen, wie viele Blöcke derzeit in der Blockchain vorhanden sind.

def dump_blockchain (self):
   print ("Number of blocks in the chain: " + str(len (self)))

Beachten Sie, dass im Laufe der Zeit die Anzahl der Blöcke in der Blockchain zum Drucken außerordentlich hoch wäre. Wenn Sie den Inhalt der Blockchain drucken, müssen Sie sich möglicherweise für den Bereich entscheiden, den Sie untersuchen möchten. Im folgenden Code haben wir die gesamte Blockchain gedruckt, da wir in der aktuellen Demo nicht zu viele Blöcke hinzufügen würden.

Um die Kette zu durchlaufen, haben wir a eingerichtet for Schleife wie folgt -

for x in range (len(TPCoins)):
   block_temp = TPCoins[x]

Jeder referenzierte Block wird in eine temporäre Variable namens aufgerufen block_temp.

Wir drucken die Blocknummer als Überschrift für jeden Block. Beachten Sie, dass die Zahlen mit Null beginnen würden. Der erste Block ist ein Genesis-Block mit der Nummer Null.

print ("block # " + str(x))

Innerhalb jedes Blocks haben wir eine Liste von drei Transaktionen (mit Ausnahme des Genesis-Blocks) in einer Variablen namens gespeichert verified_transactions. Wir wiederholen diese Liste in afor Schleife und für jedes abgerufene Element rufen wir auf display_transaction Funktion zur Anzeige der Transaktionsdetails.

for transaction in block_temp.verified_transactions:
   display_transaction (transaction)

Die gesamte Funktionsdefinition ist unten dargestellt -

def dump_blockchain (self):
   print ("Number of blocks in the chain: " + str(len (self)))
   for x in range (len(TPCoins)):
      block_temp = TPCoins[x]
      print ("block # " + str(x))
      for transaction in block_temp.verified_transactions:
         display_transaction (transaction)
         print ('--------------')
      print ('=====================================')

Beachten Sie, dass wir hier die Trennzeichen an den entsprechenden Stellen im Code eingefügt haben, um die darin enthaltenen Blöcke und Transaktionen abzugrenzen.

Da wir jetzt eine Blockchain zum Speichern von Blöcken erstellt haben, besteht unsere nächste Aufgabe darin, Blöcke zu erstellen und sie der Blockchain hinzuzufügen. Zu diesem Zweck fügen wir einen Genesis-Block hinzu, den Sie bereits im vorherigen Schritt erstellt haben.