全,
据我所知,在Hyperledger Fabric环境中,排序者将消息传递给同级。如果有离线同级的话。当消息恢复到在线状态时,如何将消息传递给对等体?订购者如何知道对等体恢复在线?
问候你,伯爵
发布于 2017-07-28 10:43:52
当对等节点恢复在线时,它将获得如下所示的块:
有关更多详细信息,请参阅gossip data dissemination layer documentation。
发布于 2017-08-05 05:32:24
我想添加更多关于状态复制流程的详细信息。首先,下单服务提供了如下接口:
service AtomicBroadcast {
rpc Broadcast(stream common.Envelope) returns (stream BroadcastResponse) {}
rpc Deliver(stream common.Envelope) returns (stream DeliverResponse) {}
}其中Broadcast用于将用于排序的事务发送到排序服务,而Deliver由对等体使用以从某个位置开始向排序服务请求块。Deliver的可能选项包括
message SeekPosition {
oneof Type {
SeekNewest newest = 1;
SeekOldest oldest = 2;
SeekSpecified specified = 3;
}
}考虑到分类帐的状态同步和复制,对等体有两种可能的操作模式。一般来说,账本块是通过八卦算法分布在网络上的。为了防止所有对等体连接到订购服务,存在领导者选举的概念,例如,对于每个组织,选择一个对等体来打开到订购服务的连接,并开始拉取块并将它们转发到八卦层,以使它们在网络中的对等体之间分发。在开始领导者之前,检查账本高度并要求从它开始交付新块,所有同级都会监控领导者的可用性,并在需要时启动新的领导者选举。
现在,有了额外的后台进程,它从对等点收集状态消息,如果它发现在本地账本高度和网络中其他对等点的高度之间存在差距,它将通过@Dave提到的“状态转移”过程启动丢失块的复制。
因此,要得出结论,如果peers上线并出于某种原因被选为领导者,它将直接从订购服务复制分类帐模块,否则他将通过八卦层或状态转移获得,以防分类帐高度出现重大差距。
发布于 2017-12-28 10:58:40

您可以参考此图像以获取简要概述
https://stackoverflow.com/questions/43121310
复制相似问题