Hyperledger Fabric 一文了解MSP的目录结构

Fabric是一个联盟链,联盟链的特点是用户非授权时不能接入区块链,因此Fabric系统中存在一套授权体系,我们将这个体系称为Fabric Membership Service Providers

MSP是什么?

Fabric的账号实际上是根据PKI规范生成的一组证书和秘钥文件。在Fabric中每条交易都会加上发起者的标签(签名证书),同时用发起人的私钥进行加密。如果交易需要其他组织的节点提供背书功能,那么背书节点也会在交易中加入自己的签名。这样每一笔交易过程都会非常清晰并且不可篡改。鉴于传统系统中基于账号和密码的验证体系已经无法完成这样的工作。因此Fabric设计了基于PKI规范的账号系统满足这样的要求。

一个完整的Fabric账号中包含的内容如下所示:

Hyperledger Fabric 一文了解MSP的目录结构

orderer账号orderer.example.com

peer账号peer0.org1.example.com

client账号[email protected],[email protected]

账号目录结构如下

Hyperledger Fabric 一文了解MSP的目录结构

1.msp目录中存放签名用的证书文件和加密用的私钥文件。msp包含以下5个部分:

admincerts: 管理员证书。

cacerts: 根CA服务器的证书。

keystore:节点或者账号的私钥。

signcerts: 符合X.509的节点或者用户证书文件。

tlscacerts:  TLS根CA的证书。

2.tls文件夹中存放加密通信相关的证书文件。

什么样的操作需要使用Fabric的账号?

Fabric中Orderer、Peer、客户端SDK、CLI接口等所有操作都需要账号。Fabric中每个具体的动作,创建通道、部署chaincode、调用chaincode等都需要指定的账号。每个Peer向Orderer发送请求的时候也需要Peer的账号。

启动order设置msp目录的路径
ordererOrganizations/example.com/orderers/orderer.example.com/msp

启动peer设置msp目录的路径
peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp

创建channel需要设置client,即Admin的msp路径
peerOrganizations/org1.example.com/users/[email protected]/msp

动态添加账号

cryptogen的操作每次都会重置证书,因此要动态添加账号需要使用Fabric CA