Python区块链 创建初始Block
我们假设TPCoins的发起人最初向一个已知的客户 Dinesh 发放了500个TPCoins 。 为此,他首先创建了一个Dinesh实例–Dinesh。
Dinesh = Client()
然后我们创建一个创世交易,向Dinesh的公共地址发送500个TPCoins。
t0 = Transaction (
"Genesis",
Dinesh.identity,
500.0
)
现在,我们创建一个 Block 类的实例,并将其称为 block0。
block0 = Block()
我们将 previous_block_hash 和 Nonce 实例变量初始化为 None ,因为这是存储在我们区块链中的第一笔交易。
block0.previous_block_hash = None
Nonce = None
接下来,我们将把上述t0交易添加到区块内维护的 verified_transactions 列表中—-。
block0.verified_transactions.append (t0)
在这一点上,区块已经完全初始化,并准备好被添加到我们的区块链中。我们将为此目的创建区块链。在我们将区块添加到区块链之前,我们将对区块进行散列,并将其值存储在我们之前声明的名为 last_block_hash的 全局变量中。这个值将被下一个矿工在他的区块中使用。
我们使用以下两行代码对区块进行散列并存储摘要值。
digest = hash (block0)
last_block_hash = digest
最后,我们创建一个区块链,正如我们在下一章看到的那样。