Python Création de Blockchain
Une blockchain contient une liste de blocs enchaînés les uns aux autres. Pour stocker la liste entière, nous allons créer une variable de liste appelée TPCoins -
TPCoins = []
Nous écrirons également une méthode utilitaire appelée dump_blockchainpour vider le contenu de la blockchain entière. Nous imprimons d'abord la longueur de la blockchain afin de savoir combien de blocs sont actuellement présents dans la blockchain.
def dump_blockchain (self):
print ("Number of blocks in the chain: " + str(len (self)))
Notez qu'avec le temps, le nombre de blocs dans la blockchain serait extraordinairement élevé pour l'impression. Ainsi, lorsque vous imprimez le contenu de la blockchain, vous devrez peut-être décider de la plage que vous souhaitez examiner. Dans le code ci-dessous, nous avons imprimé la blockchain entière car nous n'ajouterions pas trop de blocs dans la démo actuelle.
Pour parcourir la chaîne, nous avons mis en place un for boucle comme suit -
for x in range (len(TPCoins)):
block_temp = TPCoins[x]
Chaque bloc référencé est copié dans une variable temporaire appelée block_temp.
Nous imprimons le numéro de bloc comme en-tête pour chaque bloc. Notez que les nombres commenceraient par zéro, le premier bloc est un bloc de genèse numéroté zéro.
print ("block # " + str(x))
Dans chaque bloc, nous avons stocké une liste de trois transactions (à l'exception du bloc genesis) dans une variable appelée verified_transactions. Nous itérons cette liste dans unfor boucle et pour chaque élément récupéré, nous appelons display_transaction fonction pour afficher les détails de la transaction.
for transaction in block_temp.verified_transactions:
display_transaction (transaction)
La définition complète de la fonction est présentée ci-dessous -
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 ('=====================================')
Notez qu'ici nous avons inséré les séparateurs aux points appropriés dans le code pour délimiter les blocs et les transactions qu'il contient.
Comme nous avons maintenant créé une blockchain pour stocker des blocs, notre tâche suivante est de créer des blocs et de commencer à les ajouter à la blockchain. Pour cela, nous ajouterons un bloc de genèse que vous avez déjà créé à l'étape précédente.