Search code examples
hyperledger-fabrichyperledgerhyperledger-composer

Hyperledger: error bringing up network (byfn.sh up)


I have had a previously running simple network on localhost:3000, and in order to achieve that, I have used different links for the prerequisites and installation steps, and not, http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html , because of which I have never worked with fabric-samples folder. While bringing the network up, I received my [first error][1]

Consequently, I opened /home/himani/fabric-samples/first-network/docker-compose-cli.yaml and made my edits, by changing the container names of peer0.org1.example.com and orderer.example.com to peer000.org001.example.com and orderer000.example.com respectively.

After making the edits, on running the command: ./byfn.sh up, it could execute without any error.

After correcting a few errors I had made in installing npm, I shut down this network using command : ./byfn.sh down, and downloaded the fabric-samples folder again. Now while running ./byfn.sh up, I received no error. But I encountered an error while trying to run this command :

 ./byfn.sh up -l node

error: (oddly, orderer000.example.com and orderer000.example.com were also run, despite down-ing that network and deleting the folder)

 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/Admin@org1.example.com/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.sstatic.net/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

UPDATE 2: After down-ing and running the network again, ./byfn.sh up worked perfectly. But ./byfn.sh up -l node throws error again.

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/Admin@org1.example.com/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

Solution

  • I would suggest stopping all and removing all containers, then return the yaml files to their original names. Then try starting it all up again.

    The commands to stop and remove the containers are:

    docker stop $(docker ps -q) and

    docker rm $(docker ps -aq)

    The docker site has good documentation for the docker commands.