通过阅读黄纸,我可以看到每个块头都包含用于事务和事务收据的trie根目录的Keccak256散列。我很难理解他们是如何在哪里被创造出来的。
当世界状态通过遍历事务来更新时,事务和事务收据是否被存储在各自的尝试中?
发布于 2016-06-13 10:10:38
事务尝试和事务接收尝试确实是具有独立根的独立数据结构,存储在区块链头上,在目的和内容上都不一样。
用于组成事务Trie (黄纸)第4.3节的详情)的参数:
用于组成事务收据Trie [黄纸]第4.4.1节的详情的参数:
发布于 2020-01-03 11:54:50
在https://blog.ethereum.org/2015/11/15/merkling-in-ethereum中,Vitalik给出了一个使用不同树(事务、收据、状态树)的例子。
第一个由事务树处理;第三个和第四个由状态树处理,第二个由接收树处理。前四项计算非常简单;服务器只需查找对象,获取Merkle分支(从对象到树根的散列列表),然后用分支返回到轻量级客户机。第五个问题也是由状态树处理的,但是计算方法要复杂得多。在这里,我们需要构造一个所谓的Merkle状态转移证明。从本质上讲,它是一种证明,“如果你用根S在状态上运行事务T,结果将是一个带有根S的状态,有日志和输出O”(因为每个事务都是一个函数调用,所以“输出”作为一个概念存在,这在理论上是不必要的)。
收据基本上是给证明日志和事件的。
https://ethereum.stackexchange.com/questions/5888
复制相似问题