Ethereum学习之路 —— 交易树和收据树

交易树和收据树

交易树和收据树也是MPT。交易树和收据树与状态树有一个比较大的区别,交易树和收据树只把当前区块发布的交易组织起来,而状态树是要把系统中所有的账户状态都要包含进去,不管这些账户和当前区块的交易有无关系。

每个区块的交易树和收据树都是独立的,它们是不会共享节点的。

作用

交易树: 提供Merkel Proof。向轻节点证明某个交易是打包在区块中的。
收据树: 向轻节点证明某个交易的执行结果。

如何高效的查询某个交易在哪个区块中?
以太坊为了高效的查询某个区块中的某个交易,引入了bloom filter这种数据结构。
bloom filter 可以参考 https://blog.csdn.net/jiaomeng/article/details/1495500
通过bloom filter 这种数据结构,可以在区块头中快速查找某个交易是否被保存在该区块中。然后再向全节点请求具体的数据。

以太坊的运行过程可以看作是交易驱动的状态机

  • 状态 以太坊中的状态树中包含的内容,交易 每次发布的区块中包含的交易。通过执行这些交易,会将状态树中的状态从当前状态转移到交易后的状态。
上一篇:Restful规范-APIView源码分析


下一篇:以太坊:Go-Ethereum: 编译运行