使用Hyperledger Composer启动Hyperledger Fabric网络时出现错误

5

我正在尝试使用Hyperledger Composer搭建一个网络,我遵循了创建Hyperledger Composer解决方案的开发者教程,但当我使用以下命令时:

composer network start --networkName tutorial-network --networkVersion
0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card

它报错如下:
Starting business network tutorial-network at version 0.0.1

Processing these Network Admins:    userName: admin

✖ Starting business network definition. This may take a minute...
**Error: Error trying to start business network. Error: No valid responses from any peers.** Response from attempted peer comms was an error: **Error: 2 UNKNOWN: error starting container: Failed to generate platform-specific docker build: Error returned from build: 1 "npm ERR!** code EAI_AGAIN npm ERR! errno EAI_AGAIN npm ERR! request to https://registry.npmjs.org/composer-runtime-hlfv1 failed, reason: getaddrinfo EAI_AGAIN registry.npmjs.org:443

npm ERR! A complete log of this run can be found in: npm ERR!     /root/.npm/_logs/2018-04-10T10_10_13_361Z-debug.log " Command failed

我尝试过拆除 Fabric 并重新开始,但没有帮助。
3个回答

3
  1. 如果您在代理/防火墙后面?则在composer network install命令中,您需要一个-o npmrcFile参数来解决NPM注册表。例如: registry=https://mycompanynpmregistry.com:4873 (或已解析的IP地址),如:composer network install -c PeerAdmin@hlfv1 -a digitalproperty-network.bna -o npmrcFile=/tmp/npmrcFile。请参见https://hyperledger.github.io/composer/latest/managing/connector-information

  2. 如果您发现在启动或升级请求上出现REQUEST_TIMEOUT,则可以尝试增加默认的fabric启动超时时间。

如果您正在使用我们简单的Hyperledger Composer 开发服务器环境composer-tools github存储库中,那么您可以将以下内容添加到对等方定义中,以查看是否解决了问题:

  • CORE_CHAINCODE_STARTUPTIMEOUT=1200s

在文件~/fabric-tools/fabric-scripts/hlfv11/composer/docker-compose.yml中,以上是对等方定义的片段。您必须在该目录位置执行docker-compose stop,然后执行docker-compose start才能生效。

注:

除了上面的CORE_CHAINCODE_STARTUPTIMEOUT更改之外,您还必须更新超时值以匹配(即CORE_CHAINCODE_STARTUPTIMEOUT),在执行composer网络启动命令的卡片(例如$HOME/.composer中的PeerAdmin卡片)的connection.json文件中。在“connection”下的“client”部分中,您将看到4个超时(3个用于Peer和1个用于Order)。默认情况下,这些设置为300秒-每个增加到1200。请注意,CORE_CHAINCODE_STARTUPTIMEOUT必须有“尾随s”,而上面定义的这4个超时则没有。


0

1) 在启动网络时,我遇到了相同的错误。这个解决方案帮助了我:https://github.com/hyperledger/composer/issues/3591#issuecomment-386718739

它说明了以下内容:

从Hyperledger Composer网站复制字符串时会多出一个字符。

尝试将以下行复制并粘贴到记事本中,然后再粘贴到命令行中。它会起作用。

composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card

2) 如果这不起作用,请尝试终止任何过期或活动的Docker容器。

运行以下命令以终止任何过期或活动的容器:

docker rm -f $(docker ps -aq)

清除任何缓存的网络:

在命令提示符下提示时按y

docker network prune 然后,进入~/fabric-dev-servers文件夹并运行以下命令:
cd ~/fabric-dev-servers ./teardownFabric.sh ./startFabric.sh ./createPeerAdminCard.sh
之后,运行composer网络安装命令:
composer network start --networkName tutorial-network --networkVersion 0.0.1 --networkAdmin admin --networkAdminEnrollSecret adminpw --card PeerAdmin@hlfv1 --file networkadmin.card

0

我遇到了同样的错误,后来发现我已经在系统中安装的先决条件与版本不匹配。因此,我卸载了这些先决条件并重新安装了它们。在我的情况下,Docker的版本出现了问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接