Ethereum 以太坊接收块ID和哈希

Ethereum 以太坊接收块ID和哈希,ethereum,Ethereum,前言:这个问题涉及以太坊收据的内容与块头哈希之间的关系 问题描述:我想知道,在以太坊中,blockid是基于块的散列的。标头包含收据Trie根的哈希。收据包含块的ID 但是在将块的id放入收据之前,需要知道块本身的散列(其中包含收据Trie的散列)——换句话说,我们有一个循环依赖关系 现在,我看到了4种可能性: 1) 该区块包含包含在该区块内的交易的收据;如果不是这样,这将是很容易的;收据将存储在连续的数据块中;但这会使事情复杂化;因为需要激励其他节点包括外部收据、分发收据等 2) 收据Trie

前言:这个问题涉及以太坊收据的内容与块头哈希之间的关系

问题描述:我想知道,在以太坊中,blockid是基于块的散列的。标头包含收据Trie根的哈希。收据包含块的ID

但是在将块的id放入收据之前,需要知道块本身的散列(其中包含收据Trie的散列)——换句话说,我们有一个循环依赖关系

现在,我看到了4种可能性:

1) 该区块包含包含在该区块内的交易的收据;如果不是这样,这将是很容易的;收据将存储在连续的数据块中;但这会使事情复杂化;因为需要激励其他节点包括外部收据、分发收据等

2) 收据Trie的哈希不考虑收据中的blockID字段。这将导致某些数据具有可塑性(不受PoW保护)

3) blockID不基于整个标头的哈希值。因此,不考虑收据Trie的散列。(再次考虑部分数据的延展性)

4) 收据内没有blockID;但是我已经看到这些都包含在这里提供的一些JSON打印输出中。这些值是由命令的处理接口隐式附加的吗

这是哪一种,或者可能是另一种可能性?

来自第4.3.1节:

交易凭证R是由四个项目组成的元组,包括:截至交易发生后立即包含交易凭证的区块中使用的累积气体,Ru,通过执行交易创建的日志集,Rl和由这些日志中的信息组成的Bloom过滤器,Rb和交易的状态代码Rz:

(20) R≡ (Ru、Rb、Rl、Rz)

因此,事务凭证本身没有指定其凭证trie所属的块的任何详细信息