楔子
以下罗列出fabric安装部署相关得错误描述,希望能帮到你。
正文
1.Peer binary and configuration files not found..
原因:
找不到命令行工具(bin目录)以及config(目录)配置,更深层的原因是,在我们按官方教程安装时,执行bootstrap.sh脚本一键安装,由于网络问题,包下载不下来,我们自行下载解压后没有放入到正确的位置。
比如这是我的错误路径安放:
解决方法:
把config和bin目录文件放到fabric-smpale目录中
2.Error: error getting chaincode code crosschain_9: error getting chaincode package bytes: Error obtaining imports: command <go list -f {{ join .Imports "\n"}} /sample_crosschain>: failed with error: "exit status 1"go: cannot find main module, but found .git/config in /opt/gopath/fabric-samples to create a module there, run: cd .. && go mod init
我是使用的go1.17.x版本的。链版本是1.4.3版本,我在部署合约时出现此错误,貌似需要关闭go mod,因为1.4版本以下貌似采用gopath方式部署的合约,而go1.17.x版本默认是使用go mod 所以需要关闭,需要待确定
https://blog.csdn.net/qq_40896095/article/details/117357905
3.Error: failed to endrose chaincode install : rpc error: code = ResourceExhausted desc = trying to send message larger than max (131036620 vs. 104857600)
场景:部署合约出现此错误使用peer命令行.
原因: golang语言版本问题。官方文档中的go语言版本为1.15,虚拟机上的golang版本1.16,不兼容,因此报错
https://blog.csdn.net/rrie1/article/details/117297304
待验证!!!
4.. /network.sh: line 51: 14732 Segmentation fault peer version > /dev/null 2>&1 Peer binary and configuration files not found..
原因:出错原因可能是fabric-sample/config 目录下三个配置文件缺失,或者abirc-smaple/bin里面的bin缺失
方案:
1.可执行bootstrap.sh脚本重新生成bin文件
2.如果网络不好的情况下则可以自己去下载,分别下载下面两个网址,然后解压之后放到fabric-sample/目录之下,覆盖即可。
https://github.com/hyperledger/fabric-ca/releases
https://github.com/hyperledger/fabric/releases
进入选择对应版本的包下载即可
5.peer=peer0.org1.example.com:7051, status=500, message=error in simulation: failed to execute transaction aa705c10403cb65cecbd360c13337d03aac97a8f233a466975773586fe1086f6: could not launch chaincode basic_1.0:b359a077730d744d6a437ad49d1da951f6a01c6d1eed4f85b8b1f5a08617fe7: error starting container: error starting container:
API error (404): network _test not found
背景:v2.2.0版本链使用官方fabric-sample部署basic示例合约,部署完之后调用合约出现以上错误信息,然后通过docker命令查看部署的合约容器状态一直是Created。另外还有个前提,就是已经更改了docker-compse-xxx.yaml中的配置,已经注释掉了下面部分内容,注释是为了解决docker版本问题。
原因:本质是docker版本对网络模块处理问题,另外从而导致fabric中 peer order服务节点网络和合约容器网络是不在同一网络才会出现此错误。
解决方案:
1.升级docker版本
版本暂不确定
2.更改fabric相关配置文件
在*/fabric-samples/test-network/ 得目录下创建.env文件文件中添加如下内容
COMPOSE_PROJECT_NAME=fabric
fabric名字根据情况填写,官方dockerfile中网络定义得就是fabric_test,至于为啥我写的是fabric是因为当实际运行时会把${COMPOSE_PROJECT_NAME}和上面图片中network中的test拼接成fabric_test.因此把网络对齐之后则peer order节点就能和合约节点进行通讯了。
关闭网络然后在重启
./network down
./network up
可参看下面文章说明比较详细
https://blog.csdn.net/m0_57128752/article/details/120287922
https://blog.csdn.net/qq_51955445/article/details/126812120
https://stackoverflow.com/questions/65932112/the-name-of-hyperledger-fabric-test-network-is-not-detected-by-an-application-gi
5. Error: could not assemble transaction, err proposal response was not successful, error code 500, msg error starting container: error starting container: Post "http://unix.sock/containers/create?name=dev-peer0.org2.example.com-mycc-1.0": dial unix /host/var/run/docker.sock: connect: no such file or directory
!!!!!!!!!!!!!!! Chaincode instantiation on peer0.org2 on channel 'mychannel' failed !!!!!!!!!!!!!!!!
========= ERROR !!! FAILED to execute End-2-End Scenario ===========
参考: https://blog.csdn.net/Soulmate_666/article/details/116232238
背景:我使用mac12.6版本 部署fabric1.4.12版本出现此错误 DockerDesktop为4.21.1版本
原因:是docker版本太高了.请在Docker Desktop首选项中,取消选中该框Use gRPC FUSE for file sharing, 改为旧版osxfs文件共享,然后单击**Apply****&**Restart
参考
https://blog.csdn.net/Soulmate_666/article/details/116232238