首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >脱机对等项如何更新Hyperledger Fabric中的状态?

脱机对等项如何更新Hyperledger Fabric中的状态?
EN

Stack Overflow用户
提问于 2017-03-30 22:51:13
回答 3查看 819关注 0票数 2

全,

据我所知,在Hyperledger Fabric环境中,排序者将消息传递给同级。如果有离线同级的话。当消息恢复到在线状态时,如何将消息传递给对等体?订购者如何知道对等体恢复在线?

问候你,伯爵

EN

回答 3

Stack Overflow用户

发布于 2017-07-28 10:43:52

当对等节点恢复在线时,它将获得如下所示的块:

  • 如果对等节点是组织中的八卦领导者,则它会通过deliver API从排序方处请求数据块流,从对等节点的当前块高度开始。
  • 如果该对等节点不是八卦领导者,并且当前或稍微落后(在一个小阈值内),则它会通过八卦从组织的领导者对等节点(或组织中的另一个对等节点)获取块。
  • 如果该对等节点不是八卦领导者,并且远远落后(超出阈值),则它通过块传输从另一个对等节点(可以是跨组织)获取块。

有关更多详细信息,请参阅gossip data dissemination layer documentation

票数 4
EN

Stack Overflow用户

发布于 2017-08-05 05:32:24

我想添加更多关于状态复制流程的详细信息。首先,下单服务提供了如下接口:

代码语言:javascript
复制
service AtomicBroadcast {
    rpc Broadcast(stream common.Envelope) returns (stream BroadcastResponse) {}

    rpc Deliver(stream common.Envelope) returns (stream DeliverResponse) {}
}

其中Broadcast用于将用于排序的事务发送到排序服务,而Deliver由对等体使用以从某个位置开始向排序服务请求块。Deliver的可能选项包括

代码语言:javascript
复制
message SeekPosition {
    oneof Type {
        SeekNewest newest = 1;
        SeekOldest oldest = 2;
        SeekSpecified specified = 3;
    }
}

考虑到分类帐的状态同步和复制,对等体有两种可能的操作模式。一般来说,账本块是通过八卦算法分布在网络上的。为了防止所有对等体连接到订购服务,存在领导者选举的概念,例如,对于每个组织,选择一个对等体来打开到订购服务的连接,并开始拉取块并将它们转发到八卦层,以使它们在网络中的对等体之间分发。在开始领导者之前,检查账本高度并要求从它开始交付新块,所有同级都会监控领导者的可用性,并在需要时启动新的领导者选举。

现在,有了额外的后台进程,它从对等点收集状态消息,如果它发现在本地账本高度和网络中其他对等点的高度之间存在差距,它将通过@Dave提到的“状态转移”过程启动丢失块的复制。

因此,要得出结论,如果peers上线并出于某种原因被选为领导者,它将直接从订购服务复制分类帐模块,否则他将通过八卦层或状态转移获得,以防分类帐高度出现重大差距。

票数 2
EN

Stack Overflow用户

发布于 2017-12-28 10:58:40

您可以参考此图像以获取简要概述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43121310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档