获取背书人客户端通道时出错:背书人客户端无法连接到peer0.org1.example.com:7051



我是Hyperleger Fabric的新手。我正在阅读关于构建你的第一个网络的教程,并陷入了结构示例/第一个网络示例。我第一次跑步:

./byfn.sh generate

然后我运行:

./byfn.sh up

这样做的结果是:

Starting for channel 'mychannel' with CLI timeout of '10' seconds and CLI delay of '3' seconds
Continue? [Y/n] y
proceeding ...
2018-08-03 02:56:16.574 UTC [main] main -> INFO 001 Exiting.....
LOCAL_VERSION=1.1.1-snapshot-DOCKER_IMAGE_VERSION=1.1.0
=================== WARNING ===================
Local fabric binaries and docker images are  
out of  sync. This may cause problems.       
===============================================
/vagrant/src/github.com/hyperledger/fabric-samples/first-network/../bin/cryptogen
##########################################################
##### Generate certificates using cryptogen tool #########
##########################################################
+ cryptogen generate --config=./crypto-config.yaml
org1.example.com
org2.example.com
+ res=0
+ set +x
/vagrant/src/github.com/hyperledger/fabric-samples/first-network/../bin/configtxgen
##########################################################
#########  Generating Orderer Genesis block ##############
##########################################################
+ configtxgen -profile TwoOrgsOrdererGenesis -outputBlock ./channel-artifacts/genesis.block
2018-08-03 02:56:19.174 UTC [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-03 02:56:19.330 UTC [msp] getMspConfig -> INFO 002 Loading NodeOUs
2018-08-03 02:56:19.396 UTC [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-08-03 02:56:19.406 UTC [common/tools/configtxgen] doOutputBlock -> INFO 004 Generating genesis block
2018-08-03 02:56:19.407 UTC [common/tools/configtxgen] doOutputBlock -> INFO 005 Writing genesis block
+ res=0
+ set +x
#################################################################
### Generating channel configuration transaction 'channel.tx' ###
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputCreateChannelTx ./channel-artifacts/channel.tx -channelID mychannel
2018-08-03 02:56:19.552 UTC [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-03 02:56:19.590 UTC [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 002 Generating new channel configtx
2018-08-03 02:56:19.648 UTC [msp] getMspConfig -> INFO 003 Loading NodeOUs
2018-08-03 02:56:19.710 UTC [msp] getMspConfig -> INFO 004 Loading NodeOUs
2018-08-03 02:56:19.747 UTC [common/tools/configtxgen] doOutputChannelCreateTx -> INFO 005 Writing new channel tx
+ res=0
+ set +x
#################################################################
#######    Generating anchor peer update for Org1MSP   ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org1MSPanchors.tx -channelID mychannel -asOrg Org1MSP
2018-08-03 02:56:19.900 UTC [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-03 02:56:19.938 UTC [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-08-03 02:56:19.940 UTC [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
+ res=0
+ set +x
#################################################################
#######    Generating anchor peer update for Org2MSP   ##########
#################################################################
+ configtxgen -profile TwoOrgsChannel -outputAnchorPeersUpdate ./channel-artifacts/Org2MSPanchors.tx -channelID mychannel -asOrg Org2MSP
2018-08-03 02:56:20.083 UTC [common/tools/configtxgen] main -> INFO 001 Loading configuration
2018-08-03 02:56:20.124 UTC [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 002 Generating anchor peer update
2018-08-03 02:56:20.126 UTC [common/tools/configtxgen] doOutputAnchorPeersUpdate -> INFO 003 Writing anchor peer update
+ res=0
+ set +x
Creating network "net_byfn" with the default driver
Creating volume "net_peer0.org2.example.com" with default driver
Creating volume "net_peer1.org2.example.com" with default driver
Creating volume "net_peer1.org1.example.com" with default driver
Creating volume "net_peer0.org1.example.com" with default driver
Creating volume "net_orderer.example.com" with default driver
Creating orderer.example.com ... 
Creating peer1.org2.example.com ... 
Creating peer0.org2.example.com ... 
Creating orderer.example.com
Creating peer1.org2.example.com
Creating peer0.org2.example.com
Creating peer1.org1.example.com ... 
Creating peer0.org1.example.com ... 
Creating peer1.org1.example.com
Creating peer1.org1.example.com ... done
Creating cli ... 
Creating cli ... done
____    _____      _      ____    _____ 
/ ___|  |_   _|    /     |  _   |_   _|
___     | |     / _    | |_) |   | |  
___) |   | |    / ___   |  _ <    | |  
|____/    |_|   /_/   _ |_| _   |_|  
Build your first network (BYFN) end-to-end test
Channel name : mychannel
Creating channel...
+ 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=0
+ set +x
2018-08-03 02:56:24.093 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
2018-08-03 02:56:24.140 UTC [channelCmd] InitCmdFactory -> INFO 002 Endorser and orderer connections initialized
2018-08-03 02:56:24.344 UTC [main] main -> INFO 003 Exiting.....
===================== Channel 'mychannel' created ===================== 
Having all peers join the channel...
+ peer channel join -b mychannel.block
+ res=1
+ set +x
2018-08-03 02:56:24.489 UTC [channelCmd] InitCmdFactory -> INFO 001 Endorser and orderer connections initialized
Error: proposal failed (err: rpc error: code = Unavailable desc = transport is closing)
Usage:
peer channel join [flags]
Flags:
-b, --blockpath string   Path to file containing genesis block
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
peer0.org1 failed to join the channel, Retry after 3 seconds
+ peer channel join -b mychannel.block
+ res=1
+ set +x
Error: Error getting endorser client channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
Usage:
peer channel join [flags]
Flags:
-b, --blockpath string   Path to file containing genesis block
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
peer0.org1 failed to join the channel, Retry after 3 seconds
+ peer channel join -b mychannel.block
+ res=1
+ set +x
Error: Error getting endorser client channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
Usage:
peer channel join [flags]
Flags:
-b, --blockpath string   Path to file containing genesis block
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
peer0.org1 failed to join the channel, Retry after 3 seconds
+ peer channel join -b mychannel.block
+ res=1
+ set +x
Error: Error getting endorser client channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
Usage:
peer channel join [flags]
Flags:
-b, --blockpath string   Path to file containing genesis block
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
peer0.org1 failed to join the channel, Retry after 3 seconds
+ peer channel join -b mychannel.block
+ res=1
+ set +x
Error: Error getting endorser client channel: endorser client failed to connect to peer0.org1.example.com:7051: failed to create new connection: context deadline exceeded
Usage:
peer channel join [flags]
Flags:
-b, --blockpath string   Path to file containing genesis block
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
!!!!!!!!!!!!!!! After 5 attempts, peer0.org1 has failed to join channel 'mychannel'  !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========
ERROR !!!! Test failed

我不知道出了什么问题。我该如何解决这个问题?

唯一对我有效的解决方案是增加睡眠时间来启动结构。

  1. 在启动结构之前删除所有超级账本docker图像(startFabric.sh将再次下载最新图像。

    要删除所有容器,包括其使用的卷,

    docker rm -vf $(docker ps -a -q)
    

    要删除所有图像,

    docker rmi -f $(docker images -a -q)
    
  2. 打开基本网络/start.sh
  3. 使FABRIC_START_TIMEOUT=90(默认值为10(
  4. /startFabric.sh

我已经遇到过两次这个问题

第1.1.0节

我通过删除所有docker图像来修复它,以便再次下载所有相关图像。因为,在那个时候,我有很多版本的织物图像。

在版本1.2.0中

我在一台新的ecs机器上又遇到了这个问题。

我也通过IBM区块链平台VS代码扩展得到了这个错误。我使用Fabric的1.4.4版本。

我怀疑我的磁盘空间用完了,所以我跑了docker system prune --volumes删除挂起的卷,并获得了22GB的备份(我有其他占用大量空间的docker卷(。请记住,您应该运行要在卷中保留重要数据的容器。这样"修剪"就不会删除这些卷。

之后,我通过VS代码扩展重新启动了IBM区块链平台环境,它正常启动。

我用以下命令清理码头站解决了这个问题:

docker rm -f $(docker ps -aq) && docker rmi -f $(docker images | grep dev | awk '{print $3}') && docker volume prune

最新更新