Python区块链 创建
区块链包含相互链接的块列表。为了存储整个列表,我们将创建一个名为 TPCoins 的列表变量:
TPCoins = []
我们还将编写一个实用方法,称为 转储区块链 用于转储整个区块链的内容。我们首先打印区块链的长度,以便我们知道区块链中当前存在多少块。
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]
每个引用的块都被复制到一个名为的临时变量中 块温度 .
我们打印块编号作为每个块的标题。请注意,数字将从零开始,第一个块是编号为零的创世块。
print ("block # " + str(x))
在每个区块中,我们将三个交易(创世区块除外)的列表存储在一个名为 验证交易 .我们迭代这个列表 for 循环并且对于每个检索到的项目,我们调用 显示交易 显示交易详情的功能。
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 ('=====================================')
请注意,这里我们在代码中的适当位置插入了分隔符,以划分其中的块和事务。
由于我们现在已经创建了一个用于存储块的区块链,我们的下一个任务是创建块并开始将其添加到区块链中。为此,我们将添加一个你在前面步骤中已经创建的创世块。