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 的临时变量中 。
我们打印块的编号作为每个块的标题。注意,这些数字将从0开始,第一个块是创世块,其编号为0。
print ("block # " + str(x))
在每个区块中,我们都在一个名为 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 ('=====================================')
注意,这里我们在代码中的适当位置插入了分隔符,以划分其中的区块和交易。
由于我们现在已经创建了一个用于存储区块的区块链,我们的下一个任务是创建区块并开始将其添加到区块链上。为此,我们将添加一个你在前面步骤中已经创建的创世区块。