Hyperledger:错误启动网络(byfn.sh up)

问题描述 投票:0回答:3

我在localhost:3000上有一个以前运行的简单网络,为了实现这一点,我使用了不同的链接用于先决条件和安装步骤,而不是http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html,因为我从未使用过fabric-samples文件夹。在启动网络的同时,我收到了[第一个错误] [1]

因此,我打开了/home/himani/fabric-samples/first-network/docker-compose-cli.yaml并通过将peer0.org1.example.comorderer.example.com的容器名称分别更改为peer000.org001.example.comorderer000.example.com进行了编辑。

进行编辑后,在运行命令:./byfn.sh up时,它可以执行而不会出现任何错误。

在纠正了我在安装npm时遇到的一些错误之后,我使用命令:./byfn.sh down关闭了这个网络,并再次下载了fabric-samples文件夹。现在,在运行./byfn.sh up时,我没有收到任何错误。但是在尝试运行此命令时遇到错误:

 ./byfn.sh up -l node

错误:(奇怪的是,orderer000.example.comorderer000.example.com也运行,尽管下载了该网络并删除了该文件夹)

 himani@himani-HP-Notebook:~/fabric-samples/first-network$ ./byfn.sh up -l node
    Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
    Continue? [Y/n] y
    proceeding ...
    2018-06-05 12:01:27.340 UTC [main] main -> INFO 001 Exiting.....
    LOCAL_VERSION=1.1.0
    DOCKER_IMAGE_VERSION=1.1.0
    peer0.org2.example.com is up-to-date
    peer1.org2.example.com is up-to-date
    orderer000.example.com is up-to-date
    peer1.org1.example.com is up-to-date
    peer000.org001.example.com is up-to-date
    cli is up-to-date

     ____    _____      _      ____    _____ 
    / ___|  |_   _|    / \    |  _ \  |_   _|
    \___ \    | |     / _ \   | |_) |   | |  
     ___) |   | |    / ___ \  |  _ <    | |  
    |____/    |_|   /_/   \_\ |_| \_\   |_|  

    Build your first network (BYFN) end-to-end test

    Channel name : mychannel
    Creating channel...
    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_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_LOCALMSPID=Org1MSP
    CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
    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_ENABLED=true
    CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
    CORE_PEER_ID=cli
    CORE_LOGGING_LEVEL=INFO
    CORE_PEER_ADDRESS=peer0.org1.example.com:7051
    + peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    + res=1
    + set +x
    2018-06-05 12:01:30.704 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
    Error: got unexpected status: BAD_REQUEST -- error authorizing update: error validating ReadSet: readset expected key [Group]  /Channel/Application at version 0, but got version 1
    Usage:
      peer channel create [flags]

    Flags:
      -c, --channelID string   In case of a newChain command, the channel ID to create.
      -f, --file string        Configuration transaction file generated by a tool such as configtxgen for submitting to orderer
      -t, --timeout int        Channel creation timeout (default 5)

    Global Flags:
          --cafile string                       Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
          --certfile string                     Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
          --clientauth                          Use mutual TLS when communicating with the orderer endpoint
          --keyfile string                      Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
          --logging-level string                Default logging level and overrides, see core.yaml for full syntax
      -o, --orderer string                      Ordering service endpoint
          --ordererTLSHostnameOverride string   The hostname override to use when validating the TLS connection to the orderer.
          --tls                                 Use TLS when communicating with the orderer endpoint
      -v, --version                             Display current version of fabric peer server

    !!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!
    ========= ERROR !!! FAILED to execute End-2-End Scenario ===========

    ERROR !!!! Test failed

  [1]: https://i.stack.imgur.com/afsMk.png



**UPDATE:**
Now, I get an error running `./byfn.sh up` also, but now `orderer000.example.com` and `peer000.org001.example.com` are not mentioned, but their correct version, `orderer.example.com` and `peer.org1.example.com` are.

I also referred to the solution of a similar question https://stackoverflow.com/questions/49648529/hyperledger-fabric-simples-issue-run-byfn-sh-m-up-failed by modifying first-network/base/peer-base.yaml to include this first line under `environment` section : `- GODEBUG=netdns=go` , but to no avail. I received the following error:

    himani@himani-HP-Notebook:~/fabric-samples/first-network$ ./byfn.sh up
    Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
    Continue? [Y/n] y
    proceeding ...
    2018-06-06 05:07:24.242 UTC [main] main -> INFO 001 Exiting.....
    LOCAL_VERSION=1.1.0
    DOCKER_IMAGE_VERSION=1.1.0
    peer0.org2.example.com is up-to-date
    orderer.example.com is up-to-date
    peer0.org1.example.com is up-to-date
    peer1.org1.example.com is up-to-date
    peer1.org2.example.com is up-to-date
    cli is up-to-date

     ____    _____      _      ____    _____ 
    / ___|  |_   _|    / \    |  _ \  |_   _|
    \___ \    | |     / _ \   | |_) |   | |  
     ___) |   | |    / ___ \  |  _ <    | |  
    |____/    |_|   /_/   \_\ |_| \_\   |_|  

    Build your first network (BYFN) end-to-end test

    Channel name : mychannel
    Creating channel...
    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_TLS_KEY_FILE=/etc/hyperledger/fabric/tls/server.key
    CORE_PEER_PROFILE_ENABLED=true
    CORE_PEER_GOSSIP_ORGLEADER=false
    CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
    CORE_PEER_TLS_CERT_FILE=/etc/hyperledger/fabric/tls/server.crt
    CORE_PEER_TLS_ENABLED=true
    CORE_VM_DOCKER_HOSTCONFIG_NETWORKMODE=net_byfn
    CORE_LOGGING_LEVEL=INFO
    CORE_PEER_GOSSIP_USELEADERELECTION=true
    + peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
    + res=1
    + set +x
    Error: failed to create deliver client: failed to load config for OrdererClient: unable to load orderer.tls.rootcert.file: open /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem: no such file or directory
    Usage:
      peer channel create [flags]

    Flags:
      -c, --channelID string   In case of a newChain command, the channel ID to create.
      -f, --file string        Configuration transaction file generated by a tool such as configtxgen for submitting to orderer
      -t, --timeout int        Channel creation timeout (default 5)

    Global Flags:
          --cafile string                       Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
          --certfile string                     Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
          --clientauth                          Use mutual TLS when communicating with the orderer endpoint
          --keyfile string                      Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
          --logging-level string                Default logging level and overrides, see core.yaml for full syntax
      -o, --orderer string                      Ordering service endpoint
          --ordererTLSHostnameOverride string   The hostname override to use when validating the TLS connection to the orderer.
          --tls                                 Use TLS when communicating with the orderer endpoint
      -v, --version                             Display current version of fabric peer server

    !!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!
    ========= ERROR !!! FAILED to execute End-2-End Scenario ===========

    ERROR !!!! Test failed

更新2:在down-ing再次运行网络后,./byfn.sh up工作得很好。但./byfn.sh up -l node再次抛出错误。

himani@himani-HP-Notebook:~/fabric-samples/first-network$ ./byfn.sh up -l node
Starting with channel 'mychannel' and CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
2018-06-06 09:06:22.325 UTC [main] main -> INFO 001 Exiting.....
LOCAL_VERSION=1.1.0
DOCKER_IMAGE_VERSION=1.1.0
orderer.example.com is up-to-date
peer0.org2.example.com is up-to-date
peer1.org2.example.com is up-to-date
peer0.org1.example.com is up-to-date
peer1.org1.example.com is up-to-date
cli is up-to-date

 ____    _____      _      ____    _____ 
/ ___|  |_   _|    / \    |  _ \  |_   _|
\___ \    | |     / _ \   | |_) |   | |  
 ___) |   | |    / ___ \  |  _ <    | |  
|____/    |_|   /_/   \_\ |_| \_\   |_|  

Build your first network (BYFN) end-to-end test

Channel name : mychannel
Creating channel...
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_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_LOCALMSPID=Org1MSP
CORE_VM_ENDPOINT=unix:///host/var/run/docker.sock
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_ENABLED=true
CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/[email protected]/msp
CORE_PEER_ID=cli
CORE_LOGGING_LEVEL=INFO
CORE_PEER_ADDRESS=peer0.org1.example.com:7051
+ peer channel create -o orderer.example.com:7050 -c mychannel -f ./channel-artifacts/channel.tx --tls true --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem
+ res=1
+ set +x
2018-06-06 09:06:25.547 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: got unexpected status: BAD_REQUEST -- error authorizing update: error validating ReadSet: readset expected key [Group]  /Channel/Application/Org2MSP at version 0, but got version 1
Usage:
  peer channel create [flags]

Flags:
  -c, --channelID string   In case of a newChain command, the channel ID to create.
  -f, --file string        Configuration transaction file generated by a tool such as configtxgen for submitting to orderer
  -t, --timeout int        Channel creation timeout (default 5)

Global Flags:
      --cafile string                       Path to file containing PEM-encoded trusted certificate(s) for the ordering endpoint
      --certfile string                     Path to file containing PEM-encoded X509 public key to use for mutual TLS communication with the orderer endpoint
      --clientauth                          Use mutual TLS when communicating with the orderer endpoint
      --keyfile string                      Path to file containing PEM-encoded private key to use for mutual TLS communication with the orderer endpoint
      --logging-level string                Default logging level and overrides, see core.yaml for full syntax
  -o, --orderer string                      Ordering service endpoint
      --ordererTLSHostnameOverride string   The hostname override to use when validating the TLS connection to the orderer.
      --tls                                 Use TLS when communicating with the orderer endpoint
  -v, --version                             Display current version of fabric peer server

!!!!!!!!!!!!!!! Channel creation failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========

ERROR !!!! Test failed
hyperledger-fabric hyperledger hyperledger-composer
3个回答
2
投票

我建议停止所有并删除所有容器,然后将yaml文件返回到其原始名称。然后尝试再次启动它。

停止和删除容器的命令是:

docker stop $(docker ps -q)

docker rm $(docker ps -aq)

docker site有很好的docker命令文档。


1
投票

经过仔细阅读,我意识到两者之间有一个选择,./byfn.sh up,.byfn.sh -l node。作为一个黄金法则,每当遇到问题时,关闭网络然后重新启动一直工作到现在


0
投票

该示例适用于存储库的FirstNetwork示例:

这对我有用:清理环境:

docker ps -aq

^这将为您提供容器ID列表。逐个删除它们:

docker rm -rf containerIds

做一个向下命令:

./byfn.sh -m down

然后做一个up命令:

./byfn.sh -m up
© www.soinside.com 2019 - 2024. All rights reserved.