《Hyperledger Fabric菜鸟进阶攻略》 —3.3 一分钟启动分布式网络

举报
华章计算机 发表于 2020/02/16 20:23:16 2020/02/16
【摘要】 本节书摘来自华章计算机《Hyperledger Fabric菜鸟进阶攻略》 一书中第3章,第3.3.1节,作者是黎跃春 韩小东 付金亮  。

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属性指定了所依赖的相关容器。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。