Python区块链 - 创建Genesis Block

我们假设TPCoins的发起人最初向已知客户 Dinesh 发出500个TPCoins.为此,他首先创建一个Dinesh实例 :

Dinesh = Client()

然后我们创建一个创世纪交易,并向Dinesh的公共地址发送500个TPCoins.

t0 = Transaction (
   "Genesis",
   Dinesh.identity,
   500.0
)

现在,我们创建 Block的实例类并将其命名为 block0 .

block0 = Block()

我们将 previous_block_hash Nonce 实例变量初始化为,因为这是第一个事务存储在我们的区块链中.

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

最后,我们创建一个区块链正如我们在下一章中看到的那样.