Fabric MSP成员管理
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, 安全传输层协议)传输 (必须配置)
MSP目录
分析fabric示例中的crypto-config
目录,网络中共有1个orderer节点和4个peer节点(分为两个组织org1,org2),该目录利用二进制工具cryptogen成。目录下有ordererOrganizations
和peerOrgnizations
两个子目录,分别表示orderer节点和peer节点MSP配置。这里提取org1的MSP配置进行分析,为了方便节点的部署,目录中有很多冗余存储。
org1.example.com
├── ca # 根CA的私钥和证书
│ ├── 0e729224e8b3f31784c8a93c5b8ef6f4c1c91d9e6e577c45c33163609fe40011_sk
│ └── ca.org1.example.com-cert.pem
├── msp # MSP配置目录
│ ├── admincerts # MSP管理员证书
│ │ └── Admin@org1.example.com-cert.pem
│ ├── cacerts # MSP根CA证书(与ca目录下的证书一致)
│ │ └── ca.org1.example.com-cert.pem
│ └── tlscacerts # TLS根CA证书
│ └── tlsca.org1.example.com-cert.pem
├── peers # peer节点的MSP配置私钥
│ ├── peer0.org1.example.com # peer0节点配置
│ │ ├── msp
│ │ │ ├── admincerts # 管理员证书
│ │ │ │ └── Admin@org1.example.com-cert.pem
│ │ │ ├── cacerts # 根CA证书
│ │ │ │ └── ca.org1.example.com-cert.pem
│ │ │ ├── keystore # 节点的私钥
│ │ │ │ └── 27db82c96b1482480baa1c75f80e5cce249beaab27b70c741bb0e2554355957e_sk
│ │ │ ├── signcerts # 节点的证书
│ │ │ │ └── peer0.org1.example.com-cert.pem
│ │ │ └── tlscacerts # TLS根CA证书
│ │ │ └── tlsca.org1.example.com-cert.pem
│ │ └── tls
│ │ ├── ca.crt # TLS根CA证书
│ │ ├── server.crt # 节点的TLS证书
│ │ └── server.key # 节点的TLS私钥
│ └── peer1.org1.example.com
│ ├── msp
│ │ ├── admincerts
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ ├── cacerts
│ │ │ └── ca.org1.example.com-cert.pem
│ │ ├── keystore
│ │ │ └── fdee12a3510fde3155c37128cfec26090ae249bfbca28f884e60c21338493edd_sk
│ │ ├── signcerts
│ │ │ └── peer1.org1.example.com-cert.pem
│ │ └── tlscacerts
│ │ └── tlsca.org1.example.com-cert.pem
│ └── tls
│ ├── ca.crt
│ ├── server.crt
│ └── server.key
├── tlsca # TLS根CA证书和私钥
│ ├── 945092d936f5838c5a6f6484db974d857933706737d00d04bf65f74e3976f9f8_sk
│ └── tlsca.org1.example.com-cert.pem
└── users # 默认生成的用户配置,一般会包含1个管理员和1个普通成员
├── Admin@org1.example.com # MSP管理员
│ ├── msp
│ │ ├── admincerts # 管理员证书
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ ├── cacerts # CA根证书
│ │ │ └── ca.org1.example.com-cert.pem
│ │ ├── keystore # 管理员私钥
│ │ │ └── 5890f0061619c06fb29dea8cb304edecc020fe63f41a6db109f1e227cc1cb2a8_sk
│ │ ├── signcerts # 管理员证书
│ │ │ └── Admin@org1.example.com-cert.pem
│ │ └── tlscacerts # TLS根证书
│ │ └── tlsca.org1.example.com-cert.pem
│ └── tls
│ ├── ca.crt # TLS根证书
│ ├── server.crt # 管理员的TLS证书
│ └── server.key # 管理员的TLS私钥
└── User1@org1.example.com
├── msp
│ ├── admincerts
│ │ └── User1@org1.example.com-cert.pem
│ ├── cacerts
│ │ └── ca.org1.example.com-cert.pem
│ ├── keystore
│ │ └── 73cdc0072c7203f1ec512232c780fc84acc9752ef30ebc16be1f4666c02b614b_sk
│ ├── signcerts
│ │ └── User1@org1.example.com-cert.pem
│ └── tlscacerts
│ └── tlsca.org1.example.com-cert.pem
└── tls
├── ca.crt
├── server.crt
└── server.key
已有 10 条评论
添加新评论
- 上一篇: Fabric CA的部署与使用
- 下一篇: Fabric示例——first network
您好,请问如何fabric中搭建MPT树呢,以及现在fabric主要是用做账本记录交易,可不可以只进行存储与查询操作呢
1. 有资料显示fabric 1.0之后就不再使用Merkle tree结构,你可以去看下0.6版本里区块头中hash的生成方式。 参考:https://stackoverflow.com/questions/66204016/why-no-merkle-tree-in-hyperledger-fabric-to-track-the-world-state
2.可以做存储和查询,fabric的存储结构是 状态数据库+账本,可以用状态数据库存储当前状态,账本则记载变更记录。
请问如果应用fabric于车联网,您觉得怎样用fabric来模拟车辆之间交互以及车辆与基础设施交互的过程呢
用fabric来模拟是指仅仅用fabric网络来存储这些交互的数据,还是指每一个设备都会运行一个fabric节点?
如果是前者,需要先对业务建模,理清楚到底需要把哪些数据存到kv数据库中,以及未来需要怎样检索;如果是后者,可能先要考虑清楚是否每个设备都需要存储全量数据。
您好,请问如何fabric中搭建MPT树呢,以及现在fabric主要是用做账本记录交易,可不可以只进行存储与查询操作呢
大神,我正在开你的一系列fabric讲解,很感谢,新手的我很迷茫,不知道从哪入手,网络搭建好了,但是不会用,看了大量的视频和官网文档,感觉自己还是虚的很。【害怕】
网络搭建好了可以发送请求测一下fabric的交易流程。建议以实践为主,遇到问题再看资料。如果有实际的项目需求就更容易上手了。
q
可以用这个管理fabric的用户么
可以的。不过一般情况下,用户的证书使用CA服务器动态签发。