《Hyperledger Fabric菜鸟进阶攻略》 —3.3 一分钟启动分布式网络
3.3 一分钟启动分布式网络
目标
1.深入理解Hyperledger Fabric网络启动过程。
2.掌握网络启动命令及其所需参数。
网络启动之前所需的所有内容已经准备就绪,下面深入分析网络中各节点运行时所需指定的必备信息。
3.3.1 网络服务的配置
启动网络,就是启动提供网络服务的各个节点,那么这些节点如何启动,需要哪些信息?由于要启动多个网络节点,Hyperledger Fabric采用了容器技术,所以需要一个简化的方式来集中化管理这些节点容器。我们使用docker-compose这个工具来实现一步到位的节点容器管理,而且只需要编写相应的配置文件即可。
Hyperledger Fabric同样提供了docker-compose工具的示例配置文件,该配置文件在fabric-samples/first-network目录下,文件名称为docker-compose-cli.yaml,打开这个配置文件可以看到如下完整内容:
version: '2'
volumes:
orderer.example.com:
peer0.org1.example.com:
peer1.org1.example.com:
peer0.org2.example.com:
peer1.org2.example.com:
networks:
byfn:
services:
orderer.example.com:
extends:
file: base/docker-compose-base.yaml
service: orderer.example.com
container_name: orderer.example.com
networks:
- byfn
peer0.org1.example.com:
container_name: peer0.org1.example.com
extends:
file: base/docker-compose-base.yaml
service: peer0.org1.example.com
networks:
- byfn
peer1.org1.example.com:
container_name: peer1.org1.example.com
extends:
file: base/docker-compose-base.yaml
service: peer1.org1.example.com
networks:
- byfn
peer0.org2.example.com:
container_name: peer0.org2.example.com
extends:
file: base/docker-compose-base.yaml
service: peer0.org2.example.com
networks:
- byfn
peer1.org2.example.com:
container_name: peer1.org2.example.com
extends:
file: base/docker-compose-base.yaml
service: peer1.org2.example.com
networks:
- byfn
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=DEBUG
- CORE_LOGGING_LEVEL=INFO
- CORE_PEER_ID=cli
- CORE_PEER_ADDRESS=peer0.org1.example.com:7051
- CORE_PEER_LOCALMSPID=Org1MSP
- CORE_PEER_TLS_ENABLED=true
- CORE_PEER_TLS_CERT_FILE=/opt/gopath/src/github.com/hyperledger/fabric/
peer/crypto/peerOrganizations/org1.example.com/peers/
peer0.org1.example.com/tls/server.crt
- CORE_PEER_TLS_KEY_FILE=/opt/gopath/src/github.com/hyperledger/fabric/
peer/crypto/peerOrganizations/org1.example.com/peers/
peer0.org1.example.com/tls/server.key
- CORE_PEER_TLS_ROOTCERT_FILE=/opt/gopath/src/github.com/hyperledger/
fabric/peer/crypto/peerOrganizations/org1.example.com/peers/
peer0.org1.example.com/tls/ca.crt
- CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/
peer/crypto/peerOrganizations/org1.example.com/users/
Admin@org1.example.com/msp
working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
command: /bin/bash
volumes:
- /var/run/:/host/var/run/
- ./../chaincode/:/opt/gopath/src/github.com/chaincode
- ./crypto-config:/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/
- ./scripts:/opt/gopath/src/github.com/hyperledger/fabric/peer/scripts/
- ./channel-artifacts:/opt/gopath/src/github.com/hyperledger/fabric/
peer/channel-artifacts
depends_on:
- orderer.example.com
- peer0.org1.example.com
- peer1.org1.example.com
- peer0.org2.example.com
- peer1.org2.example.com
networks:
- byfn
由以上配置信息可以看出,该配置文件指定了网络中各个节点容器(共计6个容器,即1个Orderer、属于2个Orgs组织的4个Peer、1个CLI)的信息。仔细观察会发现,Orderer与各Peer容器都设置了container_name与networks信息;其他信息都由extends指向了base/docker-compose-base.yaml文件。
CLI容器指定了所代表的Peer节点(CORE_PEER_ADDRESS = peer0.org1.example.com:7051),通过volumes指定了将系统中的链码、组织结构及证书、生成的配置文件映射到容器中指定的目录下,且通过depends_on属性指定了所依赖的相关容器。
- 点赞
- 收藏
- 关注作者
评论(0)