Hyperledger Fabric TLS层证书生成、Gossip节点发现及通道加入相关问题
Hyperledger Fabric 相关机制问题解答
1. TLS消息层证书生成逻辑及对Gossip节点发现的意义
Fabric集群中所有节点、客户端、排序服务的TLS通信证书,均由组织级的TLS根CA(或其授权的中间TLS CA)统一签发,属于组织维度的信任凭证,和具体通道无关。
这一设计对Gossip协议的核心价值是:Gossip节点间的底层通信默认走TLS加密,只要通信双方的TLS证书都被对方的信任根列表认可,即可直接完成握手建立安全连接,不需要依赖通道配置做额外验证,为跨节点的基础发现、消息广播提供了独立于通道的安全通信底座。
2. 通道节点可见性规则与证书认知校验
- 节点可见性规则:不需要加入通道即可发现同组织内的所有节点,以及已配置跨组织信任的其他组织公开节点,但只有加入指定通道后,才能获取该通道的成员列表、查看通道内的所有参与节点,且仅能和通道内节点同步对应通道的账本数据。
- 原有认知存在偏差:通道MSP的
fabric-ca-server负责签发的是身份签名证书,用于交易签名、MSP身份合法性校验,并不处理TLS证书的签发。TLS证书由组织专属的TLS CA独立管理,和通道没有绑定关系,通道MSP的根证书只会被写入通道配置,用于验证通道内成员的身份有效性,和TLS层的证书体系互相独立。
3. 节点加入目标通道的运作逻辑
节点加入通道不需要提前发现通道内的节点,完整流程如下:
- 通道管理员先通过合法的管理员身份凭证,向排序服务请求拉取目标通道的创世区块,该步骤仅需要管理员能访问排序服务的公开端口即可,不需要感知通道内的其他节点信息
- 管理员向待加入通道的节点发送
peer channel join命令,传入拉取到的通道创世区块,节点验证创世区块的合法性后完成加入操作 - 节点加入通道后,会从创世区块中解析出通道配置信息,包括通道内所有组织的锚节点地址、排序服务地址等,节点会先和锚节点建立Gossip连接,再通过锚节点的发现服务逐步获取通道内的全量节点列表,后续即可正常同步账本、参与通道内的交易流程。
内容的提问来源于stack exchange,提问作者David Boshton
相关产品推荐
相关产品推荐

