网络

网络组件是专门为促进共识和共享内存池协议而设计的。目前,它为这些组件提供了两个主要接口:

RPC,用于远程过程调用;

DirectSend,用于向单个接收方发送“即发即忘”样式的消息。

网络组件使用:

Multiaddr :用于对等寻址的方案。

TCP :用于可靠传输。

Noise :用于身份验证和点对点加密。

Yamux :在单个链接上多路复用子流(substreams)。

推送类型的 gossip :用于对节点发现。

每个新的子流(substream)都被分配了一个由发送方和接收方都支持的协议。每个RPC和DirectSend类型都对应一个这样的协议。

只有符合条件的成员才允许加入内部验证器网络。它们的标识和公钥信息由共识组件在初始化和更新系统成员时提供。一个新的验证器还需要一些种子节点的网络地址,以帮助它启动连接到网络的链接。种子对等节点首先进行验证器的身份验证,然后与之共享网络状态。

网络中的每个成员都维护一个合法全员视图,并直接连接到需要与之通信的任何验证器。不能直接连接的验证器被假定为属于系统所能容忍的拜占庭式故障的范围。

定期使用活动探测器来确定的验证者的状态,信息不在验证器之间共享; 相反,每个验证器直接监视其对等节点的活动状态。

在完成部分资格成员视图,复杂的故障检测器或网络覆盖之前,此方法应扩展到几百个验证器。

Last updated