Fabric系列 - 锚节点

锚节点

锚节点是定义在一个已经加入到通道的组织的节点。该节点主要用于节点的发现。

在一个通道中,锚节点可以被这个通道的其他任何节点发现和通信。因此,每一个加入到管通内的组织都至少有一个锚节点,一个组织的节点可以通过查找锚节点来发现这个通道内的其他组织的所有节点。

leader节点

当ordering服务要发送一个区块到通道,这个块就必须先发送到一个组织的leader 节点,之后由leader节点把这个块通过gossip协议分发到这个组织的其他节点上。 也就是说,锚点是组织和组织之间的联通桥梁。而leader节点是peer节点和order服务之间的通信桥梁。

注册锚节点

根据当前的peer身份,获取到当前peer所在的组织

确保所设置的锚点要在当前的channel内

使用锚点信息,构造joinchannel的消息格式

根据配置信息,获取要更改组织下的所有锚点,这些锚点信息都放入joinchannel的消息中,用于gossip发送

验证锚节点

对joinchannel消息中每个组织里的锚点:

遍历这个组织下的锚点,首先进行host和port合法性检测。如果当前节点就是锚点,就不做任何操作。之后,如果锚点不在当前组织内,需要判断当前节点是否可以对外连接,也就是说是否设置了外部访问端口

使用发现服务连接这个锚点,在连接的过程中,发送的消息是不需要节点签名的。只需要保证连接的时候,需要知道连接节点的PKIid(PKIid的获取是通过与远程节点进行握手操作获取到远程节点的签名信息和PKIid)


往期精彩回顾:
区块链知识系列
密码学系列
零知识证明系列
共识系列
公链调研系列
比特币系列
以太坊系列
EOS系列
Filecoin系列
联盟链系列
Fabric系列
智能合约系列
Token系列

猜你喜欢

转载自blog.csdn.net/wcc19840827/article/details/120697372
今日推荐