原文地址:https://www.cnblogs.com/qingpingseo/p/8875463.html

区块链,能推开信任的大门吗?

有个朋友问我一个以太坊的问题:以太坊如何保证交易的执行结果的一致性的? 为了回答这个问题,把以太坊的源代码翻了一下:

1
http://www.300gu.com/supermarket.html  

简单的画一张图,描述以太坊的从一个交易到打包的流程:

以太坊- 交易到打包流程概述

1)TxPool从网络上接收到一个交易,发送TxPreEvent事件。

2)worker在接收到TxPreEvent事件后,调用update->commitTransactions提交目前收到的交易。

3)Work中的commitTransaction负责调用EVM虚拟机执行交易,并返回给Work有关此次交易的Receipt(执行列表)。

4)Miner调用Work的commitNewWork,从交易列表中选择交易,组装区块结构。

5)Work调用CpuAgent,完成POW工作量证明(打包)。

6)一旦区块打包成功,worker广播NewMinedBlockEvent事件。

回答问题:以太坊如何保证交易的执行结果的一致性的?

每个交易在EVM虚拟机中执行后会生成“执行列表”。区块中所有交易的“执行列表”组成Merkle-PatriciaTrie(MPT)树。树根会被保存到该区块的区块头中。也就是说,逻辑上,在区块中,保存了交易“执行列表”。这样所有的节点,就可以验证这些交易的“执行列表”,并由这些“执行列表”,更新状态。


相关文章:

  • 2021-08-17
  • 2021-11-13
  • 2021-08-02
  • 2021-09-22
  • 2021-12-05
  • 2021-09-15
  • 2021-06-11
  • 2021-12-26
猜你喜欢
  • 2021-11-28
  • 2021-10-06
  • 2022-12-23
  • 2022-01-22
  • 2021-07-21
  • 2021-11-28
  • 2022-12-23
相关资源
相似解决方案