为什么 Hyperledger Fabric 中没有 Merkle 树来跟踪世界状态

Why No Merkle tree in Hyperledger Fabric to track the world state

我注意到之前的 Hyperledger Fabric v0.6 使用 Merkle Bucket Tree 来组织世界状态。并且默克尔树根哈希包含在区块头中,作为共识协议的一部分。 以类似的方式,Ethereum/Quorum 和 Hyperledger Sawtooth 在其数据模型中采用 Merkle 树变体来保护世界状态。

但是为什么 Hyperledger Fabric 从 v1 开始就放弃了这种基于 Merkle 的数据模型?他们的设计原理是什么?是效率问题还是其他因素?

从 Fabric 1.0 开始,交易的有效性在 peers 中确定,在块被组装之后。

Peer 检查诸如背书策略和多版本并发控制冲突之类的事情,交易可能被视为无效,这意味着它的状态更新将不会被应用。

在排序服务中生成区块时,交易的有效性未知,排序者不知道世界状态(与节点不同)。