Hyperledger fabric Hyperledger结构网络上交易流的验证阶段(在假设场景下)

Hyperledger fabric Hyperledger结构网络上交易流的验证阶段(在假设场景下),hyperledger-fabric,hyperledger,Hyperledger Fabric,Hyperledger,我们的团队是Hyperledger结构的新手,并且一直在经历。我们陷入了困境,我们非常感谢所有的帮助。以下是我们的理解(与问题相关),然后是实际问题 在简化的意义上,当我们进入事务流的验证阶段时,订购方从客户机应用程序接收一个事务包,它们被放在一个块中,然后发送给提交的对等方;执行验证检查,然后更新世界状态和区块链 此外,此块已分发到的通道上的每个对等方都独立地对其进行处理,尽管处理方式与该通道上的每个其他对等方完全相同(以便账本保持一致) 在每个对等点,区块内的每笔交易都经过验证,确保在应用

我们的团队是Hyperledger结构的新手,并且一直在经历。我们陷入了困境,我们非常感谢所有的帮助。以下是我们的理解(与问题相关),然后是实际问题


  • 在简化的意义上,当我们进入事务流的验证阶段时,订购方从客户机应用程序接收一个事务包,它们被放在一个块中,然后发送给提交的对等方;执行验证检查,然后更新世界状态和区块链

  • 此外,此块已分发到的通道上的每个对等方都独立地对其进行处理,尽管处理方式与该通道上的每个其他对等方完全相同(以便账本保持一致)

  • 在每个对等点,区块内的每笔交易都经过验证,确保在应用于分类账之前,所有相关组织都一致认可了该交易。失败的交易记录将保留以供审核,而不会应用于分类账。已正确背书的交易将尝试应用于分类账

  • 这意味着对等块与从订购方接收的块几乎完全相同,除了块中每个事务上的有效或无效指示符。从这里开始,我们遵循并收集到无效事务不会发生状态更新。它们在块元数据中被标记为无效,块被序列化并添加到链中,有效事务的状态更新正在进行

  • 在所有正常情况下,期望所有提交的对等方都将为块返回相同的结果(因为它们都应用了相同的处理),然后将其传送到客户端应用程序


  • 我们的问题是:

  • 现在发生了什么,如果这些提交的对等方在验证过程中同时对块产生不同的结果(比如每个都有自己的最终结果)。那么如何更新分类账/世界状态?是否有任何一组对等节点比其他节点具有更高的优先级,或者系统可能会选择基于共识的决策?这种冲突将如何解决

  • 在任何一组情况下,这是否是一种有效的可能性(发生此类事件-对等节点在验证阶段变为流氓)?或者网络中已经存在阻止这种情况发生的检查

  • 如果发生这种情况,可能导致这种情况的原因是什么?可能的网络错误导致订购方将同一块的稍有不同的副本发送到不同的对等方?或者故意/恶意调整每个对等节点拥有的验证代码,然后在该块内的每个事务上运行?或者别的什么



  • 非常感谢您耐心地回答我们的问题。我们感谢您在这方面提供的所有帮助。

    首先,我想纠正您理解的第一点:

    在简化的意义上,一旦订购方从客户端应用程序接收到一个事务包,它们就被放在一个块中,然后发送给对等方进行处理;执行验证检查,然后更新世界状态和区块链

    Hyperledger结构在执行订单验证体系结构上工作。来自客户端应用程序的事务首先提交到背书节点。背书节点执行提议的事务并捕获读写集,并在签名后将它们作为响应发送回应用程序。然后,应用程序将响应作为事务发送到订购服务

    您问题的答案:

    1.如果同龄人不知何故没有达成类似的结果(不同的同龄人对区块有自己的最终结果),现在会发生什么?是否有任何一组对等节点的结果比其他节点的结果具有更高的优先级,或者系统可能会选择基于共识的决策?这种冲突将如何解决

    Ans.事务首先由背书对等方背书,RW集在执行和签名后发送回应用程序。如果应用程序收到背书策略中定义的足够背书,则将发送响应以进行订购,否则交易将在背书阶段失败。这就是处理冲突的方式。结构能够处理非确定性事务

    2.在任何情况下,(此类事件发生的)可能性是否有效?或者网络中已经存在阻止这种情况发生的检查

    答:在恶意节点、节点故障、网络分区等情况下,这是可能的

  • 如果发生这种情况,可能导致这种情况的原因是什么?是否存在可能的网络错误,导致同一数据块的不同副本被发送到不同的对等方?或者故意/恶意调整每个对等节点拥有的验证代码,然后在该块内的每个事务上运行?或者别的什么

  • 答:上述可能的原因。在订购阶段之后,有一个验证阶段。在此阶段,提交对等方将根据背书策略验证事务,并检查该事务对于当前世界状态是否仍然有效。无效交易被写入分类账,但未在世界状态中更新,而在分类账和世界状态中更新为有效交易。

    感谢您的回答。不过,恐怕我不会