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

请注意,这里我们在代码中的适当位置插入了分隔符,以划分其中的块和事务。

由于我们现在已经创建了一个用于存储块的区块链,我们的下一个任务是创建块并开始将其添加到区块链中。为此,我们将添加一个你在前面步骤中已经创建的创世块。