Python Creazione di Blockchain

Una blockchain contiene un elenco di blocchi concatenati tra loro. Per memorizzare l'intero elenco, creeremo una variabile di elenco chiamata TPCoins -

TPCoins = []

Scriveremo anche un metodo di utilità chiamato dump_blockchainper scaricare il contenuto dell'intera blockchain. Per prima cosa stampiamo la lunghezza della blockchain in modo da sapere quanti blocchi sono attualmente presenti nella blockchain.

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

Si noti che con il passare del tempo, il numero di blocchi nella blockchain sarebbe straordinariamente alto per la stampa. Pertanto, quando stampi il contenuto della blockchain potresti dover decidere l'intervallo che desideri esaminare. Nel codice sottostante, abbiamo stampato l'intera blockchain poiché non aggiungeremmo troppi blocchi nella demo corrente.

Per scorrere la catena, abbiamo impostato un file for loop come segue -

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

Ogni blocco referenziato viene copiato in una variabile temporanea chiamata block_temp.

Stampiamo il numero di blocco come intestazione per ogni blocco. Nota che i numeri inizierebbero con zero, il primo blocco è un blocco di genesi numerato zero.

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

All'interno di ogni blocco, abbiamo memorizzato un elenco di tre transazioni (ad eccezione del blocco genesis) in una variabile chiamata verified_transactions. Ripetiamo questo elenco in un filefor loop e per ogni elemento recuperato, chiamiamo display_transaction funzione per visualizzare i dettagli della transazione.

for transaction in block_temp.verified_transactions:
   display_transaction (transaction)

L'intera definizione della funzione è mostrata di seguito:

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 ('=====================================')

Notare che qui abbiamo inserito i separatori nei punti appropriati del codice per delimitare i blocchi e le transazioni al suo interno.

Dato che ora abbiamo creato una blockchain per l'archiviazione dei blocchi, il nostro prossimo compito è creare blocchi e iniziare ad aggiungerlo alla blockchain. A tale scopo, aggiungeremo un blocco genesi che hai già creato nel passaggio precedente.