如何在Hyperledger面料离线同行更新状态?

问题描述 投票:2回答:3

所有,

据我所知,在Hyperledger面料的环境中,接受订货邮件递送给同行。如果有一个脱机对等体。如何将消息传递给同行,当它恢复上线?如何订货者知道对恢复上线?

问候,计数

hyperledger-fabric
3个回答
4
投票

当对恢复联机它会得到块如下:

  • 如果对等是在有机闲聊龙头,然后将其请求块流从经由传送API,开始于对等体当前块高度的订购。
  • 如果对方不是一个八卦的领导者,是目前或只是稍微落后(在一个小的阈值),那么它通过八卦获取块从组织的领导人等(或组织可能在另一台同行)。
  • 如果对端不是八卦领导者和方式是后面(超过阈值),那么它通过从另一对等块传输获取块(可以是交单位)。

欲了解更多详细信息,请参阅gossip data dissemination layer documentation


1
投票

我想补充的状态复制流量的详细信息。首先订购服务提供以下API:

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;
    }
}

有业务的分类帐的同行考虑状态同步和复制两种可能的模式。一般来说使用八卦算法分布在整个网络台账块。为了防止连接到订购服务的所有同行有领导人选举,例如的概念每个组织有选择打开连接到订购服务,并开始拉块,并将其转发给八卦层,使它们在网络中的节点之间分配一个同级。开始之前检查的领导者是什么台账高度,并要求提供从它开始的新块,所有的同行监督的领导者的可用性,并根据需要启动新的领导人选举。

现在,有从对等体收集状态信息的其他后台进程和如果发现有本地分类帐高度和其他对等网络将开始丢失块的复制中的高度之间的间隙,经由“状态转移”过程是通过@戴夫提及。

因此,得出结论,如果同行联机出于某种原因,当选为龙头,将复制台账块直接从订购服务,否则他将在总账高度显著差距的情况下通过小道消息层或状态转移获得无论是。


0
投票

enter image description here您可以参考该图像的简要概述

© www.soinside.com 2019 - 2024. All rights reserved.