环境准备
本文,根据byfn例子,介绍手动向Channel中添加一个Org的详细步骤。
日志配置
将cli
和 Org3cli
containers的日志级别CORE_LOGGING_LEVEL
修改为 DEBUG
修改first-network
目录中的docker-compose-cli.yaml
文件,
cli:
container_name: cli
image: hyperledger/fabric-tools:$IMAGE_TAG
tty: true
stdin_open: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
#- CORE_LOGGING_LEVEL=INFO
- CORE_LOGGING_LEVEL=DEBUG
修改相同目录下的docker-compose-org3.yaml
文件
Org3cli:
container_name: Org3cli
image: hyperledger/fabric-tools:$IMAGE_TAG
tty: true
stdin_open: true
environment:
- GOPATH=/opt/gopath
- CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
#- CORE_LOGGING_LEVEL=INFO
- CORE_LOGGING_LEVEL=DEBUG
清理环境
如果启动过eyfn
./eyfn.sh down
停掉container等./byfn.sh -m down
生成默认的 BYFN artifacts:./byfn.sh -m generate
启动网络./byfn.sh -m up
生成 Org3 Crypto Material
从first-network
切换到org3-artifacts
子目录。
cd org3-artifacts
这里有两个有趣的yaml文件:org3-crypto.yaml
和configtx.yaml
。首先,为Org3
生成加密资料:
../../../bin/cryptogen generate --config=./org3-crypto.yaml
该命令读入我们新的加密yaml文件 -·org3-crypto.yaml
- 并利用cryptogen
为Org3
CA,以及与此新Org绑定的两个peer,生成密钥和证书。与BYFN实现一样,这个加密资料被放入当前工作目录(在我们的例子中为org3-artifacts
)内新生成的crypto-config
文件夹中。
现在使用configtxgen
工具在JSON中打印出特定于Org3
的配置材料。我们告诉工具在当前目录中查找它需要引用的configtx.yaml
。
export FABRIC_CFG_PATH=$PWD && ../../../bin/configtxgen -printOrg Org3MSP > ../channel-artifacts/org3.json
上述命令创建一个JSON文件 - org3.json
,并将其输出到first-network
目录下的channel-artifacts
子目录中。该文件包含Org3的策略定义,以及以base 64格式提供的三个重要证书:admin用户证书(稍后将用作Org3的管理员),CA根证书和TLS根证书。在后面的步骤中,我们将把这个JSON文件附加到Channel配置中。
最后一项工作是将Orderer Org
的MSP资料
移到Org3 crypto-config
目录中。特别是,我们关注Orderer的TLS根证书,这将允许Org3实体和网络的ordering节点之间的安全通信。