【问题标题】:How to fix the error when trying to bring up first-network尝试启动第一网络时如何修复错误
【发布时间】:2018-10-13 22:04:00
【问题描述】:

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

以“10”秒的 CLI 超时和“3”秒的 CLI 延迟开始频道“mychannel” 继续? [是/否] 是 进行中... 本地版本=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

【问题讨论】:

    标签: hyperledger-fabric


    【解决方案1】:

    好吧,您的版本似乎有些问题,我建议您清理 docker running 的所有容器和映像:

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

    之后,重新下载fabric samples,我认为他们昨天更新了1.3.0稳定版,重新设置你的crytogen路径(如果你指的是旧的,这非常重要cryptogen 工具的版本无法使用!

    再试一次,如果这不起作用,我建议您向我们提供更多信息,例如。

    您在哪里运行 First-Network?视窗?苹果电脑? Linux? Linux 版本? docker 的版本?

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

    Setup Hyperledger Fabric in multiple physical machines

    更新

    由于您在 Windows 中,请不要使用您的 users 文件夹,例如创建一个简单的文件夹结构,例如 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

    我建议您重新安装 docker for windows,可能它的某些内容已损坏,导致您无法启动网络。

    希望对你有帮助!

    【讨论】:

    • 我按照您的建议删除了所有图像。我没有运行任何容器。我仍然有同样的问题。我正在使用 Docker 版本 18.06.1-ce 在 WLS(Windows Linux 子系统)中的 Windows 10 上运行
    • 我按照您的建议添加到 .env 文件中。我的文件夹结构是 c:\workspace\fabric-samples\first-network。我仍然有同样的问题
    • 能否将 docker-compose.yaml 添加到您的问题中?
    • 我没有 docker-compose.yaml,但我有的是 docker-compose-cli.yaml。我已将其添加到我的问题中
    • 还是不行。我仍然得到同样的错误。如果有人可以让它在 Windows 10 上运行,请告诉我。我已经花了 2 天时间,但无法让它工作。我已经放弃了。我要给自己买一台 Mac。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多