原文地址: 超级账本HyperLedger的Fabric-CA的使用演示(两个组织一个Orderer三个Peer)
- 说明
- 启动fabric-ca
- 生成fabric-ca admin的凭证
- 创建联盟
- 为每个组织准备msp
- 注册example.com的管理员Admin@example.com
- 注册org1.example.com的管理员Admin@org1.example.com
- 注册org2.example.com的管理员Admin@org2.example.com
- 各个组织分别使用自己的Admin账户创建其它账号
- 重新部署
- 更新用户的证书以及后续操作
- 参考
说明
本文是对hyperledger的fabric项目的全手动部署的补充,这里将演示如何使用fabric-ca为每个组件和用户生成证书。
如果对下面的操作有不清楚的地方,可以参阅超级账本HyperLedger的fabricCA的用法讲解。演示视频已经制作完成:
IT技术快速入门学院:HyperLedger FabricCA使用演示的视频教程
可以使用下面的部署方式:
这里做了简化,只部署了一个Fabric-CA作为rootCA。
将创建一个由两个组织org1.example.com
和org2.example.com
组成的的联盟。
另外还有一个组织example.com
用来部署orderer。
example.com部署了一个solo
模式的orderer。(多个orderer的部署方式,以后探讨)
orderer.example.com
org1.example.com部署了两个peer:
peer0.org1.example.com
peer1.org1.example.com
org2.example.com部署了一个peer:
peer0.org2.example.com
每个组织都要有一个Admin用户,每个组件(peer/orderer)也需要一个账号,因此需要通过fabric-ca创建7个用户:
example.com: Admin@example.com orderer.example.com
org1.example.com: Admin@org1.example.com peer0.org1.example.com peer1.org1.example.com
org2.example.com: Admin@org2.example.com peer0.org2.example.com
这里只创建了Admin用户,普通用户的创建方式相同,只是普通用户的证书不需要添加到目标组件的admincerts目录中。
启动fabric-ca
fabirc-ca的编译:
$ go get -u github.com/hyperledger/fabric-ca
$ cd $GOPATH/src/github.com/hyperledger/fabric-ca
$ make fabric-ca-server
$ make fabric-ca-client
$ ls bin/
fabric-ca-client fabric-ca-server
这里将fabric-ca部署在/opt/app/fabric-ca/server
目录中:
mkdir -p /opt/app/fabric-ca/server
cp -rf $GOPATH/src/github.com/hyperledger/fabric-ca/bin/* /opt/app/fabric-ca/server
ln -s /opt/app/fabric-ca/server/fabric-ca-client /usr/bin/fabric-ca-client
直接启动ca,fabric-ca admin的名称为admin,密码为pass。(这里只是演示,生产中使用,你需要根据实际的情况配置)
cd /opt/app/fabric-ca/server
./fabric-ca-server start -b admin:pass &
如果有删除联盟
和删除用户
的需求,需要用下面的方式启动:
cd /opt/app/fabric-ca/server
./fabric-ca-server start -b admin:pass --cfg.affiliations.allowremove --cfg.identities.allowremove &
注意:这里只是演示用法,直接用sqlite存储用户信息,生产中,请根据情况配置ldap或者mysql等数据库:HyperLedger FabricCA Config Database and LDAP。
生成fabric-ca admin的凭证
下面的操作在《hyperledger的fabric项目的全手动部署》中创建的fabric-deploy
目录中进行后续操作。
cd ~/fabric-deploy
mkdir fabric-ca-files
生成fabric-ca admin的凭证,用-H
参数指定client目录: