锚节点是定义在一个已经加入到管道的组织的节点。该节点主要用于节点的发现。url
在一个管道中,锚节点能够被这个管道的其余任何节点发现和通讯。所以,每个加入到管道内的组织都至少有一个锚节点,一个组织的节点能够经过查找锚节点来发现这个管道内的其余组织的全部节点。spa
当ordering服务要发送一个区块到管道,这个块就必须先发送到一个组织的leader 节点,以后由leader节点把这个块经过gossip协议分发到这个组织的其余节点上。 也就是说,锚点是组织和组织之间的联通桥梁。而leader节点是peer节点和order服务之间的通讯桥梁。ip
根据当前的peer身份,获取到当前peer所在的组织io
确保所设置的锚点要在当前的channel内class
使用锚点信息,构造joinchannel的消息格式配置
根据配置信息,获取要更改组织下的全部锚点,这些锚点信息都放入joinchannel的消息中,用于gossip发送遍历
对joinchannel消息中每一个组织里的锚点:channel
遍历这个组织下的锚点,首先进行host和port合法性检测。若是当前节点就是锚点,就不作任何操做。以后,若是锚点不在当前组织内,须要判断当前节点是否能够对外链接,也就是说是否设置了外部访问端口im
使用发现服务链接这个锚点,在链接的过程当中,发送的消息是不须要节点签名的。只须要保证链接的时候,须要知道链接节点的PKIid(PKIid的获取是经过与远程节点进行握手操做获取到远程节点的签名信息和PKIid)技术
蜗牛讲技术,满满的都是干货,你值得关注。