Python-blockchain-python-creating-blockchain
Pythonによるブロックチェーンの作成
ブロックチェーンには、相互にチェーンされたブロックのリストが含まれます。 リスト全体を保存するには、TPCoinsというリスト変数を作成します-
TPCoins = []
また、ブロックチェーン全体の内容をダンプするための dump_blockchain と呼ばれるユーティリティメソッドを作成します。 最初にブロックチェーンの長さを出力し、ブロックチェーンに現在いくつのブロックが存在するかを確認します。
def dump_blockchain (self):
print ("Number of blocks in the chain: " + str(len (self)))
時間が経つにつれて、ブロックチェーン内のブロックの数が印刷のために非常に多くなることに注意してください。 したがって、ブロックチェーンの内容を印刷するときは、調査する範囲を決定する必要があります。 以下のコードでは、現在のデモでブロックを追加しすぎないように、ブロックチェーン全体を印刷しています。
チェーンを反復処理するには、次のように for ループを設定します-
for x in range (len(TPCoins)):
block_temp = TPCoins[x]
参照される各ブロックは、 block_temp という一時変数にコピーされます。
各ブロックの見出しとしてブロック番号を印刷します。 番号はゼロから始まり、最初のブロックはゼロの番号が付けられたジェネシスブロックであることに注意してください。
print ("block # " + str(x))
各ブロック内で、3つのトランザクションのリスト(genesisブロックを除く)を verified_transactions と呼ばれる変数に保存しました。 このリストを for ループで繰り返し、取得した各アイテムに対して、 display_transaction 関数を呼び出してトランザクションの詳細を表示します。
for transaction in block_temp.verified_transactions:
display_transaction (transaction)
関数定義全体は以下に示されています-
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 ('=====================================')
ここでは、コード内のブロックとトランザクションを区切るために、コード内の適切なポイントにセパレーターを挿入していることに注意してください。
ブロックを保存するためのブロックチェーンを作成したので、次のタスクはブロックを作成し、ブロックチェーンへの追加を開始することです。 この目的のために、前の手順で既に作成したジェネシスブロックを追加します。