为什么 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 检查诸如背书策略和多版本并发控制冲突之类的事情,交易可能被视为无效,这意味着它的状态更新将不会被应用。
在排序服务中生成区块时,交易的有效性未知,排序者不知道世界状态(与节点不同)。
我注意到之前的 Hyperledger Fabric v0.6 使用 Merkle Bucket Tree 来组织世界状态。并且默克尔树根哈希包含在区块头中,作为共识协议的一部分。 以类似的方式,Ethereum/Quorum 和 Hyperledger Sawtooth 在其数据模型中采用 Merkle 树变体来保护世界状态。
但是为什么 Hyperledger Fabric 从 v1 开始就放弃了这种基于 Merkle 的数据模型?他们的设计原理是什么?是效率问题还是其他因素?
从 Fabric 1.0 开始,交易的有效性在 peers 中确定,在块被组装之后。
Peer 检查诸如背书策略和多版本并发控制冲突之类的事情,交易可能被视为无效,这意味着它的状态更新将不会被应用。
在排序服务中生成区块时,交易的有效性未知,排序者不知道世界状态(与节点不同)。