Hyperledger fabric 如果Hyperledger结构中有多个事务正在更改同一块中的同一资产,则块会发生什么情况?

Hyperledger fabric 如果Hyperledger结构中有多个事务正在更改同一块中的同一资产,则块会发生什么情况?,hyperledger-fabric,Hyperledger Fabric,我对以下用例的理解有点困惑: 让我们假设,同一区块中有多个交易正在改变同一资产的状态,那个么在Hyperledger结构的共识周期中会发生什么 块将被拒绝 块中的第一个事务将成功,但其余事务将失败 请帮助我了解这个角落的情况。面料共识涉及多件: 调用链码函数并获得足够的认可 (通常是签名)通过调用 链码,并从正确数量的 同行 将事务提交给订购服务节点,订购服务节点就事务的顺序达成一致意见,然后将它们打包成块 排序节点将事务广播到对等节点,然后对等节点验证事务并提交有效事务的状态更改 对等方通

我对以下用例的理解有点困惑:

让我们假设,同一区块中有多个交易正在改变同一资产的状态,那个么在Hyperledger结构的共识周期中会发生什么

  • 块将被拒绝
  • 块中的第一个事务将成功,但其余事务将失败

请帮助我了解这个角落的情况。

面料共识涉及多件:

  • 调用链码函数并获得足够的认可 (通常是签名)通过调用 链码,并从正确数量的 同行
  • 将事务提交给订购服务节点,订购服务节点就事务的顺序达成一致意见,然后将它们打包成块
  • 排序节点将事务广播到对等节点,然后对等节点验证事务并提交有效事务的状态更改
  • 对等方通过检查来验证事务,以确保每个事务符合所调用链码的背书策略,然后检查每个事务的读取集,以确保在链码中读取的每个密钥的版本没有更改。如果已更改,则事务将被标记为无效,并且不会处理其写入集(状态更改)。该事务仍保留在块中,但该块使用元数据进行注释,元数据指示块中每个事务的状态。验证和提交逻辑是确定性的


    您应该通读文档中的和以了解较低级别的详细信息。

    明白了,谢谢Gari Singh。