我正在关注HyperLedger Fabric v1.4.4“编写第一个应用程序”教程[1],但是在运行代码./startFabric.sh javascript
时遇到问题:
+ echo 'Instantiating smart contract on mychannel'
Instantiating smart contract on mychannel
+ docker exec -e CORE_PEER_LOCALMSPID=Org1MSP -e CORE_PEER_MSPCONFIGPATH=/opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp cli peer chaincode instantiate -o orderer.example.com:7050 -C mychannel -n fabcar -l node -v 1.0 -c '{"Args":[]}' -P 'AND('\''Org1MSP.member'\'','\''Org2MSP.member'\'')' --tls --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem --peerAddresses peer0.org1.example.com:7051 --tlsRootCertFiles /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
2019-11-25 16:14:38.470 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 001 Using default escc
2019-11-25 16:14:38.470 UTC [chaincodeCmd] checkChaincodeCmdParams -> INFO 002 Using default vscc
Error: could not assemble transaction, err proposal response was not successful, error code 500, msg error starting container: 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/fabric-shim 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/2019-11-25T16_17_00_000Z-debug.log
"
我认为该错误与docker镜像有关,因为它在执行以下代码时发生:
echo "Instantiating smart contract on mychannel"
docker exec \
-e CORE_PEER_LOCALMSPID=Org1MSP \
-e CORE_PEER_MSPCONFIGPATH=${ORG1_MSPCONFIGPATH} \
cli \
peer chaincode instantiate \
-o orderer.example.com:7050 \
-C mychannel \
-n fabcar \
-l "$CC_RUNTIME_LANGUAGE" \
-v 1.0 \
-c '{"Args":[]}' \
-P "AND('Org1MSP.member','Org2MSP.member')" \
--tls \
--cafile ${ORDERER_TLS_ROOTCERT_FILE} \
--peerAddresses peer0.org1.example.com:7051 \
--tlsRootCertFiles ${ORG1_TLS_ROOTCERT_FILE}
我对Docker不太了解,但我正在学习。在那之前,有人可以帮助我解决这个问题吗?
[1] https://hyperledger-fabric.readthedocs.io/en/release-1.4/write_first_app.html
更新1
运行
./byfn.sh up -l node
时观察到相同的错误,但是./byfn.sh up
没有错误。我认为错误与布料垫片有关。我仍在寻找此错误的答案。
最佳答案
实例化智能合约的命令将尝试启动新的chaincode容器,但此操作失败,因为新容器无法成功运行npm install
命令。
该问题可能是Docker DNS问题,或者是由于您要连接的国家或公司而导致的npm注册表连接问题。
以下2个先前的答案将为您提供帮助:
Network calls fail during image build on corporate network
Error while running fabcar sample in javascript
关于docker - HyperLedger Fabric v1.4.4:在mychannel上实例化智能合约,但出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59037804/