Hyperledger fabric 1.0 基于 PKI(Public Key Infrastructure)体系,引入了MSP模块(Membership Service Provider): 成员管理服务提供商,生成数字证书来标识和管理成员的身份。
Fabirc的成员身份基于标准的X.509证书,密钥使用的是ECDSA算法,利用PKI体系给每个成员颁发数字证书,通道内只有相同MSP内的节点才可以通过Gossip协议进行数据分发。
每个MSP只有一个根CA证书,从根CA证书到最终用户证书形成一个证书信任链(chain of trust)
根CA证书(Root Certifiate):自签名的证书,用根CA签名生成的证书可以签发新的证书,形成树型结构 (必须配置)
中间CA证书(Intermediate Certificate):由其他CA证书签发的证书,可以利用自己的私钥签发新的证书 (可选配置)
MSP管理员证书: 有根CA的证书路径,有权限修改channel配置 (必须配置) -- 创建channel,加入channel等系统请求都需要管理员私钥进行签名
TLS根CA证书:自签名的证书,用于TLS(Transport Layer Security, 安全传输层协议)传输 (必须配置)
分析fabric示例中的crypto-config
目录,网络中共有1个orderer节点和4个peer节点(分为两个组织org1,org2),该目录利用二进制工具cryptogen成。目录下有ordererOrganizations
和peerOrgnizations
两个子目录,分别表示orderer节点和peer节点MSP配置。这里提取org1的MSP配置进行分析,为了方便节点的部署,目录中有很多冗余存储。