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

原文地址: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)树。树根会被保存到该区块的区块头中。也就是说,逻辑上,在区块中,保存了交易“执行列表”。这样所有的节点,就可以验证这些交易的“执行列表”,并由这些“执行列表”,更新状态。


版权声明:本文为博主原创文章,遵循版权协议,转载请附上原文出处链接和本声明。
本文链接:
秒速时时彩 上海时时乐 幸运赛车 欢乐生肖 三分时时彩 乐彩网导航 三分时时彩 极速11选5 小金棋牌 快3娱乐平台