尝试启动第一个网络时如何解决错误

时间:2018-10-11 03:48:42

标签: hyperledger-fabric

我正在使用Hyperledger Fabric 1.3.0。在fabric-samples / first-network中执行“ byfn.sh -m up”时,出现以下错误。

从通道“ mychannel”开始,CLI超时为“ 10”秒,CLI延迟为“ 3”秒 继续? [是/否]是 进行中... LOCAL_VERSION = 1.3.0 DOCKER_IMAGE_VERSION = 1.3.0 错误:无此类容器:cli 错误!!!!测试失败

请帮助

我没有docker-compose.yaml,但是我有docker-compose-cli.yaml。内容如下:

# Copyright IBM Corp. All Rights Reserved.
#
# SPDX-License-Identifier: Apache-2.0
#

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:`enter code here`
      - orderer.example.com
      - peer0.org1.example.com
      - peer1.org1.example.com
      - peer0.org2.example.com
      - peer1.org2.example.com
    networks:
      - byfn

1 个答案:

答案 0 :(得分:0)

好吧,看来您的版本存在一些问题,我建议您清理运行的docker的所有容器和映像:

docker rmi $(docker images -a -q) //for images

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q) //for containers

之后,重新下载结构样本,我认为他们昨天更新了1.3.0稳定版本,再次设置您的crytogen路径(如果您指向的是旧版本,这非常重要。版本的 cryptogen工具将无法正常工作!

然后再试一次,如果那行不通,我建议您向我们提供更多类似信息。

您在哪里运行您的第一网络?视窗?苹果电脑? Linux的? Linux版本?码头工人的版本?

如果您仍然遇到问题,可以使用Basic-Network示例查看我的指南,从头开始设置超级账本结构,这很容易,并解释了您需要的所有概念。

Setup Hyperledger Fabric in multiple physical machines

更新

因为您使用的是Windows,所以请不要使用用户文件夹,而要创建一个简单的文件夹结构,例如 C:/ HLF

之后,在您的 .env 文件中添加以下行COMPOSE_CONVERT_WINDOWS_PATHS=1。 这有助于Docker理解Windows路径,因为它们在Linux中是不同的。

更新#2

让我们尝试另一种解决方案,然后转到 script文件夹中的 script.sh ,查找命令peer channel create...并将此行添加到 IF 声明MSYS_NO_PATHCONV=1

在哪里

请查看结构解决方案中的Windows Extras部分,检查是否已全部安装。

Hyperledger Fabric - Windows Extras

之后,重新生成所有内容。在我的第一个答案中运行docker命令并添加它。

docker network prune

之后。

./byfn.sh down
./byfn.sh generate
./byfn.sh -m up

更新#3

我使用Windows 10和Docker for Windows(使用linux容器)以我之前提到的配置测试了 fisrt-network ,并且运行正常。

我的docker版本为: 18.06.1-ce

我遵循了Fabric Hyperledger官方教程:Build Network

我看到的唯一区别是我运行了./byfn.sh up而不是./byfn.sh -m up

我建议您为Windows重新安装docker,可能它已损坏,这不允许您启动网络。

希望有帮助!