【发布时间】:2018-10-15 15:13:28
【问题描述】:
我们的团队是 Hyperledger Fabric 的新手,并且一直在使用 official documentation。我们被困在我们非常感谢所有帮助的事情上。以下是我们的理解(与问题相关),接下来是实际问题。
-
1234563 ;执行验证检查,然后更新世界状态和区块链。
1234563
在每个对等点上,块内的每笔交易都经过验证,以确保在将其应用于分类帐之前,它已得到所有相关组织的一致认可。失败的交易被保留以供审计,而不是应用于分类帐。已正确背书的交易会尝试应用到账本上。
这意味着对等块与从排序者收到的块几乎完全相同,除了块中每个事务的有效或无效指示符。从这里开始,我们跟踪discussion 并收集到无效交易不会发生状态更新。它们在块元数据中被标记为无效,并且块被序列化并添加到链中,并为有效交易进行状态更新。
在所有正常情况下,期望所有提交对等方都将为该块返回相同的结果(因为它们都应用了相同的处理),然后将其传送到客户端应用程序。
我们的问题是:
现在会发生什么,如果这些提交节点在验证过程中同时为块提出不同的结果(比如每个节点都有自己的最终结果)。那么分类帐/世界状态将如何更新?是否有任何一组对等节点比其他节点具有更高的优先级,或者系统可能会做出基于共识的决定?如何解决这样的冲突?
在任何情况下(发生此类事件 - 对等节点在验证阶段出现恶意)是否有效?或者网络中已经有检查以防止这种情况发生?
-
如果发生这种情况,可能的原因是什么?可能的网络错误导致 Orderer 将同一块的副本发送到不同的对等点略有不同?还是有意/恶意地调整每个对等节点拥有的验证代码,然后它将在该块内的每个事务上运行?还是别的什么?
非常感谢您耐心解答我们的问题。感谢您在这方面提供的所有帮助。
【问题讨论】:
标签: hyperledger-fabric hyperledger