美文网首页区块链
Playground for Hyperledger - 启动网

Playground for Hyperledger - 启动网

作者: 山天大畜 | 来源:发表于2018-01-01 17:57 被阅读153次

    我们将利用docker-compose脚本来启动我们的区块链网络,并用之前生成的genesis.block创世块来引导orderer。

    在之前的示例中,我们使用的是docker-compose-cli.yaml来启动网络,为了详细了解每个节点和其配置的意义,我们分拆成多个yaml分别启动来看。

    在first-network文件夹下创建yaml文件,我们将把自己写的所有的yaml文件放在里面。

    CA

    首先是CA的配置文件docker-compose-ca.yaml:

    version: '2'
    
    networks:
      byfn:
    services:
      ca1:
        image: hyperledger/fabric-ca
        environment:
          - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
          - FABRIC_CA_SERVER_CA_NAME=ca-org1
          - FABRIC_CA_SERVER_TLS_ENABLED=${ENABLE_TLS}
          - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem
          - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/e5ac2c775a1785aab2314e9a37903b546094990c7b23843fd58aaa323246b4a1_sk
        ports:
          - "7054:7054"
        command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org1.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/e5ac2c775a1785aab2314e9a37903b546094990c7b23843fd58aaa323246b4a1_sk -b admin:adminpw -d'
        volumes:
          - ../crypto-config/peerOrganizations/org1.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
        network_mode: host
        container_name: ca_peerOrg1
        networks:
          - byfn
    
      ca2:
        image: hyperledger/fabric-ca
        environment:
          - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
          - FABRIC_CA_SERVER_CA_NAME=ca-org2
          - FABRIC_CA_SERVER_TLS_ENABLED=${ENABLE_TLS}
          - FABRIC_CA_SERVER_TLS_CERTFILE=/etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem
          - FABRIC_CA_SERVER_TLS_KEYFILE=/etc/hyperledger/fabric-ca-server-config/478b238f352735a9e7454af1180f633cee8c50bfe2513510d8f38970b89c7ecc_sk
        ports:
          - "8054:7054"
        command: sh -c 'fabric-ca-server start --ca.certfile /etc/hyperledger/fabric-ca-server-config/ca.org2.example.com-cert.pem --ca.keyfile /etc/hyperledger/fabric-ca-server-config/478b238f352735a9e7454af1180f633cee8c50bfe2513510d8f38970b89c7ecc_sk -b admin:adminpw -d'
        volumes:
          - ../crypto-config/peerOrganizations/org2.example.com/ca/:/etc/hyperledger/fabric-ca-server-config
        network_mode: host
        container_name: ca_peerOrg2
        networks:
          - byfn
    

    我们创建了2个ca容器,端口分别为本机的7054和8054,每个ca对应不同的org组织。
    需要注意的是,这里volumes是挂载的外部路径,这个路径一定要写对,因为配置文件是在yaml文件夹中,所以需要../,FABRIC_CA_SERVER_TLS_KEYFILE和command中的私钥文件名也要替换成你自己本机路径下的名字。

    command命令是ca服务器启动之后的初始化命令,传入参数包含了证书、私钥等配置,还有admin用户的用户名和密码admin: adminpw,如果要修改ca的admin密码,要对应修改这个地方。

    启动网路:

    $ CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=60 ENABLE_TLS=true docker-compose -f yaml/docker-compose-ca.yaml up -d
    Creating network "net_default" with the default driver
    Recreating ca_peerOrg2 ...
    Recreating ca_peerOrg1 ...
    Recreating ca_peerOrg1
    Recreating ca_peerOrg2 ... done
    

    查看下docker容器是否两个ca节点都启动了:

    $ docker ps -a
    CONTAINER ID        IMAGE                   COMMAND                  CREATED             STATUS              PORTS                    NAMES
    2a23424f40e9        hyperledger/fabric-ca   "sh -c 'fabric-ca-..."   39 seconds ago      Up 53 seconds       0.0.0.0:8054->7054/tcp   ca_peerOrg2
    a1db6e04d736        hyperledger/fabric-ca   "sh -c 'fabric-ca-..."   39 seconds ago      Up 54 seconds       0.0.0.0:7054->7054/tcp   ca_peerOrg1
    

    现在我们可以进入ca1容器,看看他里面都有些什么东西:

    $ docker exec -it ca_peerOrg1 /bin/bash
    $ cd /etc/hyperledger/fabric-ca-server
    ls

    ca-cert.pem ca-key.pem fabric-ca-server-config.yaml fabric-ca-server.db msp

    有一些根证书和私钥,yaml文件里包含了ca节点的初始化配置,db是ca验证需要存储的一些账号信息。

    Orderer

    创建docker-compose-base.yaml文件:

    version: '2'
    
    services:
    
      orderer0.example.com:
        hostname: orderer0
        domainname: example.com
        container_name: orderer0.example.com
        image: hyperledger/fabric-orderer
        environment:
          - ORDERER_GENERAL_LOGLEVEL=ERROR
          - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
          - ORDERER_GENERAL_GENESISMETHOD=file
          - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/genesis.block
          - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
          - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
          # enabled TLS
          - ORDERER_KAFKA_RETRY_PERIOD=3s
          - ORDERER_KAFKA_RETRY_STOP=10s
          - ORDERER_KAFKA_VERBOSE=true
          - ORDERER_GENERAL_TLS_ENABLED=${ENABLE_TLS}
          - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
          - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
          - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric
        command: /bin/bash -c 'sleep 10 && orderer'
        volumes:
           - ../channel-artifacts/genesis.block:/var/hyperledger/orderer/genesis.block
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/msp:/var/hyperledger/orderer/msp
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer0.example.com/tls/:/var/hyperledger/orderer/tls
        ports:
          - 7050:7050
    
      orderer1.example.com:
        hostname: orderer1.example.com
        container_name: orderer1.example.com
        image: hyperledger/fabric-orderer
        environment:
          - ORDERER_GENERAL_LOGLEVEL=ERROR
          - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
          - ORDERER_GENERAL_GENESISMETHOD=file
          - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/genesis.block
          - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
          - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
          - ORDERER_KAFKA_RETRY_PERIOD=3s
          - ORDERER_KAFKA_RETRY_STOP=10s
          # enabled TLS
          - ORDERER_KAFKA_VERBOSE=true
          - ORDERER_GENERAL_TLS_ENABLED=${ENABLE_TLS}
          - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
          - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
          - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric
        command: /bin/bash -c 'sleep 10  && orderer'
        volumes:
           - ../channel-artifacts/genesis.block:/var/hyperledger/orderer/genesis.block
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/msp:/var/hyperledger/orderer/msp
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer1.example.com/tls/:/var/hyperledger/orderer/tls
        ports:
          - 8050:7050
    
      orderer2.example.com:
        hostname: orderer2.example.com
        container_name: orderer2.example.com
        image: hyperledger/fabric-orderer
        environment:
          - ORDERER_GENERAL_LOGLEVEL=ERROR
          - ORDERER_GENERAL_LISTENADDRESS=0.0.0.0
          - ORDERER_GENERAL_GENESISMETHOD=file
          - ORDERER_GENERAL_GENESISFILE=/var/hyperledger/orderer/genesis.block
          - ORDERER_GENERAL_LOCALMSPID=OrdererMSP
          - ORDERER_GENERAL_LOCALMSPDIR=/var/hyperledger/orderer/msp
          # enabled TLS
          - ORDERER_KAFKA_RETRY_PERIOD=3s
          - ORDERER_KAFKA_RETRY_STOP=10s
          - ORDERER_KAFKA_VERBOSE=true
          - ORDERER_GENERAL_TLS_ENABLED=${ENABLE_TLS}
          - ORDERER_GENERAL_TLS_PRIVATEKEY=/var/hyperledger/orderer/tls/server.key
          - ORDERER_GENERAL_TLS_CERTIFICATE=/var/hyperledger/orderer/tls/server.crt
          - ORDERER_GENERAL_TLS_ROOTCAS=[/var/hyperledger/orderer/tls/ca.crt]
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric
        command: /bin/bash -c 'sleep 10 && orderer'
        volumes:
           - ../channel-artifacts/genesis.block:/var/hyperledger/orderer/genesis.block
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/msp:/var/hyperledger/orderer/msp
           - ../crypto-config/ordererOrganizations/example.com/orderers/orderer2.example.com/tls/:/var/hyperledger/orderer/tls
        ports:
          - 9050:7050
    
    

    创建docker-compose-orderer.yaml文件:

    version: '2'
    
    networks:
      byfn:
    services:
    
      orderer0.example.com:
        extends:
          file:   docker-compose-base.yaml
          service: orderer0.example.com
        container_name: orderer0.example.com
        depends_on:
          - kafka0
        networks:
          - byfn
    
      orderer1.example.com:
        extends:
          file:   docker-compose-base.yaml
          service: orderer1.example.com
        container_name: orderer1.example.com
        depends_on:
          - kafka0
        networks:
          - byfn
    
      orderer2.example.com:
        extends:
          file:   docker-compose-base.yaml
          service: orderer2.example.com
        container_name: orderer2.example.com
        depends_on:
          - kafka0
        networks:
          - byfn
    
    

    因为Orderer依赖于Kafka,Kafka依赖于Zookeeper,所以我统一都放在了一个yaml文件中。

    启动Orderer:

    $ CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=60 ENABLE_TLS=true docker-compose -f yaml/docker-compose-orderer.yaml up -d
    Creating orderer0.example.com ...
    Creating orderer1.example.com ...
    Creating orderer2.example.com ... done
    

    再看看容器,没有问题,ca,orderer都成功启动:

    $ docker ps
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                              NAMES
    a6e078efdbc8        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   50 seconds ago      Up About a minute   0.0.0.0:8050->7050/tcp                             orderer1.example.com
    0d455f0d6062        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   50 seconds ago      Up About a minute   0.0.0.0:9050->7050/tcp                             orderer2.example.com
    4245900f68f8        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   About an hour ago   Up About an hour    0.0.0.0:7050->7050/tcp                             orderer0.example.com
    

    Peer

    在docker-compose-base.yaml文件中追加peer节点的配置:

    peer-base:
        image: hyperledger/fabric-peer
        environment:
          - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
          - CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=${COMPOSE_PROJECT_NAME}_byfn
          - CORE_LOGGING_LEVEL=DEBUG
          - CORE_PEER_TLS_ENABLED=${ENABLE_TLS}
          - CORE_PEER_ENDORSER_ENABLED=true
          - CORE_PEER_GOSSIP_USELEADERELECTION=true
          - CORE_PEER_GOSSIP_ORGLEADER=false
          - CORE_PEER_GOSSIP_SKIPHANDSHAKE=true
          - CORE_PEER_PROFILE_ENABLED=true
          - CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
          - CORE_PEER_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
          - CORE_PEER_TLS_ROOTCERT_FILE=/etc/hyperledger/fabric/tls/ca.crt
        working_dir: /opt/gopath/src/github.com/hyperledger/fabric/peer
        command: bash -c 'sleep 20 && peer node start --peer-defaultchain=false'
    
      peer0.org1.example.com:
        hostname: peer0.org1.example.com
        container_name: peer0.org1.example.com
        extends:
          service: peer-base
        environment:
          - CORE_PEER_ID=peer0.org1.example.com
          - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
          - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org1.example.com:7051
          - CORE_PEER_LOCALMSPID=Org1MSP
        volumes:
            - /var/run/:/host/var/run/
            - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/msp:/etc/hyperledger/fabric/msp
            - ../crypto-config/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls:/etc/hyperledger/fabric/tls
        ports:
          - 7051:7051
          - 7053:7053
    
      peer1.org1.example.com:
        container_name: peer1.org1.example.com
        extends:
          service: peer-base
        environment:
          - CORE_PEER_ID=peer1.org1.example.com
          - CORE_PEER_ADDRESS=peer1.org1.example.com:7051
          - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org1.example.com:7051
          - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org1.example.com:7051
          - CORE_PEER_LOCALMSPID=Org1MSP
        volumes:
            - /var/run/:/host/var/run/
            - ../crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/msp:/etc/hyperledger/fabric/msp
            - ../crypto-config/peerOrganizations/org1.example.com/peers/peer1.org1.example.com/tls:/etc/hyperledger/fabric/tls
    
        ports:
          - 8051:7051
          - 8053:7053
    
      peer0.org2.example.com:
        container_name: peer0.org2.example.com
        extends:
          service: peer-base
        environment:
          - CORE_PEER_ID=peer0.org2.example.com
          - CORE_PEER_ADDRESS=peer0.org2.example.com:7051
          - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer0.org2.example.com:7051
          - CORE_PEER_GOSSIP_BOOTSTRAP=peer0.org2.example.com:7051
          - CORE_PEER_LOCALMSPID=Org2MSP
        volumes:
            - /var/run/:/host/var/run/
            - ../crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/msp:/etc/hyperledger/fabric/msp
            - ../crypto-config/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls:/etc/hyperledger/fabric/tls
        ports:
          - 9051:7051
          - 9053:7053
    
      peer1.org2.example.com:
        container_name: peer1.org2.example.com
        extends:
          service: peer-base
        environment:
          - CORE_PEER_ID=peer1.org2.example.com
          - CORE_PEER_ADDRESS=peer1.org2.example.com:7051
          - CORE_PEER_GOSSIP_EXTERNALENDPOINT=peer1.org2.example.com:7051
          - CORE_PEER_GOSSIP_BOOTSTRAP=peer1.org2.example.com:7051
          - CORE_PEER_LOCALMSPID=Org2MSP
        volumes:
            - /var/run/:/host/var/run/
            - ../crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/msp:/etc/hyperledger/fabric/msp
            - ../crypto-config/peerOrganizations/org2.example.com/peers/peer1.org2.example.com/tls:/etc/hyperledger/fabric/tls
        ports:
          - 10051:7051
          - 10053:7053
    
    

    创建docker-compose-peer.yaml:

    version: '2'
    
    networks:
        - byfn
    services:
      couchdb0:
        container_name: couchdb0
        image: hyperledger/fabric-couchdb
        ports:
          - "5984:5984"
        networks:
          - byfn
    
      peer0.org1.example.com:
        extends:
          file: docker-compose-base.yaml
          service: peer0.org1.example.com
        environment:
          - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
          - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb0:5984
        depends_on:
          - couchdb0
        networks:
          - byfn
    
    
      couchdb1:
        container_name: couchdb1
        image: hyperledger/fabric-couchdb
        ports:
          - "6984:5984"
        networks:
          - byfn
    
      peer1.org1.example.com:
        extends:
          file: docker-compose-base.yaml
          service: peer1.org1.example.com
        environment:
          - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
          - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb1:5984
        depends_on:
          - couchdb1
        networks:
          - byfn
    
    
    
      couchdb2:
        container_name: couchdb2
        image: hyperledger/fabric-couchdb
        ports:
          - "7984:5984"
        networks:
          - byfn
    
      peer0.org2.example.com:
        extends:
          file: docker-compose-base.yaml
          service: peer0.org2.example.com
        environment:
          - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
          - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb2:5984
        depends_on:
          - couchdb2
        networks:
          - byfn
    
    
      couchdb3:
        container_name: couchdb3
        image: hyperledger/fabric-couchdb
        ports:
          - "8984:5984"
        networks:
          - byfn
    
      peer1.org2.example.com:
        extends:
          file: docker-compose-base.yaml
          service: peer1.org2.example.com
        environment:
          - CORE_LEDGER_STATE_STATEDATABASE=CouchDB
          - CORE_LEDGER_STATE_COUCHDBCONFIG_COUCHDBADDRESS=couchdb3:5984
        depends_on:
          - couchdb3
        networks:
          - byfn
    

    启动Peer节点:

    $ CHANNEL_NAME=$CHANNEL_NAME TIMEOUT=60 ENABLE_TLS=true docker-compose -f yaml/docker-compose-peer.yaml up -d
    Creating couchdb3 ...
    Creating couchdb1 ...
    Creating couchdb0 ...
    Creating couchdb2 ...
    Creating couchdb3
    Creating couchdb1
    Creating couchdb2
    Creating couchdb3 ... done
    Creating peer1.org2.example.com ...
    Creating couchdb1 ... done
    Creating peer1.org1.example.com ...
    Creating couchdb2 ... done
    Creating couchdb0 ... done
    Creating peer1.org1.example.com ... done
    Creating peer0.org1.example.com ...
    Creating peer0.org2.example.com ... done
    

    查看容器状态:

    $ docker ps -a
    CONTAINER ID        IMAGE                          COMMAND                  CREATED                  STATUS              PORTS                                              NAMES
    749acf8eebf8        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp     peer0.org1.example.com
    8689b9152000        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up 45 minutes       0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp     peer0.org2.example.com
    b16444eac623        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp     peer1.org1.example.com
    f29ac84f381d        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
    

    Cli节点

    我们还需要创建一个Cli客户端容器节点,方便对区块链执行一些操作。
    创建文件:docker-compose-cli.yaml:

    version: '2'
    
    networks:
      byfn:
    services:
      cli:
        container_name: cli
        image: hyperledger/fabric-tools
        tty: true
        network_mode: host
        environment:
          - GOPATH=/opt/gopath
          - CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
          - CORE_LOGGING_LEVEL=DEBUG
          - CORE_PEER_ID=cli
          - CORE_PEER_ADDRESS=peer0.org1.example.com:7051
          - CORE_PEER_LOCALMSPID=Org1MSP
          - CORE_PEER_TLS_ENABLED=${ENABLE_TLS}
          - 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: bash -c 'sleep 30000000000000000000000'
        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
        networks:
          - byfn
    
    

    查看容器:

    $ docker ps
    CONTAINER ID        IMAGE                          COMMAND                  CREATED             STATUS              PORTS                                              NAMES
    a6e078efdbc8        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   50 seconds ago      Up About a minute   0.0.0.0:8050->7050/tcp                             orderer1.example.com
    0d455f0d6062        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   50 seconds ago      Up About a minute   0.0.0.0:9050->7050/tcp                             orderer2.example.com
    27f3688beec8        hyperledger/fabric-tools       "bash -c 'sleep 30..."   15 minutes ago      Up 16 minutes                                                          cli
    749acf8eebf8        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:7051->7051/tcp, 0.0.0.0:7053->7053/tcp     peer0.org1.example.com
    8689b9152000        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up 45 minutes       0.0.0.0:9051->7051/tcp, 0.0.0.0:9053->7053/tcp     peer0.org2.example.com
    b16444eac623        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:8051->7051/tcp, 0.0.0.0:8053->7053/tcp     peer1.org1.example.com
    f29ac84f381d        hyperledger/fabric-peer        "bash -c 'sleep 20..."   45 minutes ago      Up About an hour    0.0.0.0:10051->7051/tcp, 0.0.0.0:10053->7053/tcp   peer1.org2.example.com
    32f849c44e0f        hyperledger/fabric-couchdb     "tini -- /docker-e..."   45 minutes ago      Up About an hour    4369/tcp, 9100/tcp, 0.0.0.0:6984->5984/tcp         couchdb1
    02b770dfd4ed        hyperledger/fabric-couchdb     "tini -- /docker-e..."   45 minutes ago      Up About an hour    4369/tcp, 9100/tcp, 0.0.0.0:5984->5984/tcp         couchdb0
    f0c72c40c793        hyperledger/fabric-couchdb     "tini -- /docker-e..."   45 minutes ago      Up About an hour    4369/tcp, 9100/tcp, 0.0.0.0:8984->5984/tcp         couchdb3
    2eb63e7efa08        hyperledger/fabric-couchdb     "tini -- /docker-e..."   45 minutes ago      Up About an hour    4369/tcp, 9100/tcp, 0.0.0.0:7984->5984/tcp         couchdb2
    4245900f68f8        hyperledger/fabric-orderer     "/bin/bash -c 'sle..."   About an hour ago   Up About an hour    0.0.0.0:7050->7050/tcp                             orderer0.example.com
    faf06e00031a        hyperledger/fabric-ca          "sh -c 'fabric-ca-..."   About an hour ago   Up About an hour    0.0.0.0:8054->7054/tcp                             ca_peerOrg2
    496e8e0a7df6        hyperledger/fabric-ca          "sh -c 'fabric-ca-..."   About an hour ago   Up About an hour    0.0.0.0:7054->7054/tcp                             ca_peerOrg1
    

    总结

    到此,我们已经成功启动了网络中的所有节点,下一章将会在这些节点中运行我们的区块链~

    相关文章

      网友评论

        本文标题:Playground for Hyperledger - 启动网

        本文链接:https://www.haomeiwen.com/subject/dnngwxtx.html