Chaincode在Hyperledger Fabric上部署失败



我试图从fabric-samples文件夹运行示例测试网络,但由于某种原因,链码安装失败,给我一个错误。下面是我尝试运行deployCC命令时得到的所有结果:

Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: cannot connect to Docker endpoint
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed

$ ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-java -ccl java
deploying chaincode on channel 'mychannel'
executing with the following
- CHANNEL_NAME: mychannel
- CC_NAME: basic
- CC_SRC_PATH: ../asset-transfer-basic/chaincode-java
- CC_SRC_LANGUAGE: java
- CC_VERSION: 1.0
- CC_SEQUENCE: 1
- CC_END_POLICY: NA
- CC_COLL_CONFIG: NA
- CC_INIT_FCN: NA
- DELAY: 3
- MAX_RETRY: 5
- VERBOSE: false
Compiling Java code...
~/Desktop/fabric-samples/asset-transfer-basic/chaincode-java ~/Desktop/fabric-samples/test-network
Starting a Gradle Daemon, 1 incompatible and 2 stopped Daemons could not be reused, use --status for details
<-------------> 0% INITIALIZING [118ms]
<-------------> 0% INITIALIZING [627ms]
<-------------> 0% CONFIGURING [919ms]
<-------------> 0% CONFIGURING [2s]
> root <==-----------> 20% EXECUTING [3s]
> r<======-------> 53% EXECUTING [3s]
<===========--> 86% EXECUTING [4s]tRuntimeClasspath
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.5.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 12s
10 actionable tasks: 2 executed, 8 up-to-date
~/Desktop/fabric-samples/test-network
Finished compiling Java code
+ peer lifecycle chaincode package basic.tar.gz --path ../asset-transfer-basic/chaincode-java/build/install/basic --lang java --label basic_1.0
+ res=0
Chaincode is packaged
Installing chaincode on peer0.org1...
Using organization 1
+ peer lifecycle chaincode install basic.tar.gz
+ res=1
Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image inspection failed: cannot connect to Docker endpoint
Chaincode installation on peer0.org1 has failed
Deploying chaincode failed

我在Windows的Docker上运行这个,不幸的是,我在互联网上找到的所有有用的答案都与关闭gRPC功能有关,这在Windows中不支持。

任何帮助将是感激的,我已经尝试卸载所有(包括二进制文件)和重新安装,但没有运气在过去的2天。

设置网络和通道创建工作没有错误/警告,所以我猜这是一个与docker相关的通信问题。

问题是测试网络使用了内置的chaincode构建器和启动器,这需要在windows设置上访问您的docker。报告的错误是无法连接到它。

请查看https://docs.docker.com/desktop/faqs/,看看可以将其设置为什么。还可以选择在不安全的端口上公开docker守护进程,这可能会有所帮助。

DOCKER_SOCK选项被添加到main中的fabric-samples中,但似乎没有出现在2.2分支中,因此请注意您这里使用的不是fabric LTS版本

警告是我没有尝试过,所以不能保证它会工作

不幸的是,Windows目前并没有太多的关注使用fabric,所以我现在能给你的最好的建议是使用linux代替你的平台(你可以使用WSL2,但你应该谷歌安装docker到WSL2发行版,因为它确实需要一点额外的工作)

谢谢@Gelu, @david_k

问题是Docker没有正确地将容器暴露给我使用的Git-bash命令行(…)

所以,我尝试了WSL2:我花了大约30分钟设置Ubuntu,安装Hyperledger和GO,并启动和运行示例链码!没有重新安装Docker。我使用的是Docker桌面版4.1.1(69879),它在设置->资源->WSL集成中有一个惊人的特性,可以将容器暴露给所有安装了wsdl的发行版(!!)。

测试链码运行速度快,非常顺利,因为第一次尝试!

相关内容

  • 没有找到相关文章

最新更新