peer节点能够成功打包链码,但安装一直报错:

bash-5.1# peer lifecycle chaincode install codecc.tar.gz Error: chaincode install failed with status: 500 - failed to invoke backing implementation of 'InstallChaincode': could not build chaincode: docker build failed: docker image build failed: docker build failed: Error returned from build: 2 "github.com/hyperledger/fabric-cluster/chaincode/go/xxx ...

原因:peer容器下的go版本不匹配

因为同样的链码在之前的环境下打包是可以成功安装的,但是这次却一直报错,印象中我也没有中途换过fabric版本,刚开始一直坚信是链码的问题,后来才确定是版本问题。
目前版本:

[zcongfly@localhost ~]$ systemctl start docker[zcongfly@localhost ~]$ docker versionClient: Docker Engine - Community Version: 20.10.22 API version: 1.41 Go version:go1.18.9 Git commit:3a2c30b Built: Thu Dec 15 22:30:24 2022 OS/Arch: linux/amd64 Context: default Experimental:trueServer: Docker Engine - Community Engine:Version:20.10.22API version:1.41 (minimum version 1.12)Go version: go1.18.9Git commit: 42c8b31Built:Thu Dec 15 22:28:33 2022OS/Arch:linux/amd64Experimental: false containerd:Version:1.6.15GitCommit:5b842e528e99d4d4c1686467debf2bd4b88ecd86 runc:Version:1.1.4GitCommit:v1.1.4-0-g5fd4c4d docker-init:Version:0.19.0GitCommit:de40ad0[zcongfly@localhost ~]$ docker-compose versiondocker-compose version 1.28.5, build c4eb3a1fdocker-py version: 4.4.4CPython version: 3.7.10OpenSSL version: OpenSSL 1.1.0l10 Sep 2019[zcongfly@localhost ~]$ go versiongo version go1.18 linux/amd64[zcongfly@localhost ~]$ docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEbusyboxlatest66ba00ad3de8 5 weeks ago 4.87MBcouchdb3.1.1 a81efb6c8280 16 months ago 191MBhyperledger/fabric-ca1.5 4ea287b75c63 17 months ago 69.8MBhyperledger/fabric-ca1.5.2 4ea287b75c63 17 months ago 69.8MBhyperledger/fabric-calatest4ea287b75c63 17 months ago 69.8MBhyperledger/fabric-tools 2.3 98fa0bfb0fd2 17 months ago 445MBhyperledger/fabric-tools 2.3.3 98fa0bfb0fd2 17 months ago 445MBhyperledger/fabric-tools latest98fa0bfb0fd2 17 months ago 445MBhyperledger/fabric-peer2.3 a491b5ab42f6 17 months ago 53.3MBhyperledger/fabric-peer2.3.3 a491b5ab42f6 17 months ago 53.3MBhyperledger/fabric-peerlatesta491b5ab42f6 17 months ago 53.3MBhyperledger/fabric-orderer 2.3 9e1952b8840d 17 months ago 35.4MBhyperledger/fabric-orderer 2.3.3 9e1952b8840d 17 months ago 35.4MBhyperledger/fabric-orderer latest9e1952b8840d 17 months ago 35.4MBhyperledger/fabric-ccenv 2.3 56fa403e02ee 17 months ago 502MBhyperledger/fabric-ccenv 2.3.3 56fa403e02ee 17 months ago 502MBhyperledger/fabric-ccenv latest56fa403e02ee 17 months ago 502MBhyperledger/fabric-baseos2.3 b35a8ef578c0 17 months ago 6.87MBhyperledger/fabric-baseos2.3.3 b35a8ef578c0 17 months ago 6.87MBhyperledger/fabric-baseoslatestb35a8ef578c0 17 months ago 6.87MBhyperledger/fabric-zookeeper 0.4.229d0214fb481b 2 years ago 276MBhyperledger/fabric-zookeeper latest9d0214fb481b 2 years ago 276MBhyperledger/fabric-kafka 0.4.22e94a8ade54af 2 years ago 270MBhyperledger/fabric-kafka lateste94a8ade54af 2 years ago 270MBhyperledger/fabric-couchdb 0.4.22339050a439e7 2 years ago 261MBhyperledger/fabric-couchdb latest339050a439e7 2 years ago 261MBhyperledger/fabric-tools 1.4.0 0a44f4261a55 4 years ago 1.56GBhyperledger/fabric-ccenv 1.4.0 5b31d55f5f3a 4 years ago 1.43GBhyperledger/fabric-orderer 1.4.0 54f372205580 4 years ago 150MBhyperledger/fabric-peer1.4.0 304fac59b501 4 years ago 157MB

好离谱,同样的版本之前一直跑得好好的,我也不知道啥情况突然链码安装这一步不好使了。。。(可能虚拟机的问题吧)

解决方法可能得重新部署下环境。

至于应该换成哪个版本,环境搭建太繁琐,懒得再试了,先把情况记录下,等导师找我再说吧。。。

有友友遇到同样的情况评论或者私信滴滴我一下吧~

华丽的分割线(我导找我了)


就是版本问题,把原来的docker删干净重新拉取安装,同样的yaml文件和链码就没问题了。

目前安装的版本:

hyperledger/fabric-tools 2.4 625237d887db 13 months ago 473MBhyperledger/fabric-tools 2.4.3 625237d887db 13 months ago 473MBhyperledger/fabric-tools latest625237d887db 13 months ago 473MBhyperledger/fabric-peer2.4 ee643d889779 13 months ago 62.3MBhyperledger/fabric-peer2.4.3 ee643d889779 13 months ago 62.3MBhyperledger/fabric-peerlatestee643d889779 13 months ago 62.3MBhyperledger/fabric-orderer 2.4 df64446ac2df 13 months ago 37.3MBhyperledger/fabric-orderer 2.4.3 df64446ac2df 13 months ago 37.3MBhyperledger/fabric-orderer latestdf64446ac2df 13 months ago 37.3MBhyperledger/fabric-ccenv 2.4 da4f00cb576a 13 months ago 517MBhyperledger/fabric-ccenv 2.4.3 da4f00cb576a 13 months ago 517MBhyperledger/fabric-ccenv latestda4f00cb576a 13 months ago 517MBhyperledger/fabric-baseos2.4 0287ebf8aaf3 13 months ago 6.94MBhyperledger/fabric-baseos2.4.3 0287ebf8aaf3 13 months ago 6.94MBhyperledger/fabric-baseoslatest0287ebf8aaf3 13 months ago 6.94MBhyperledger/fabric-ca1.5 4ea287b75c63 18 months ago 69.8MBhyperledger/fabric-ca1.5.2 4ea287b75c63 18 months ago 69.8MBhyperledger/fabric-calatest4ea287b75c63 18 months ago 69.8MBhyperledger/fabric-couchdb latestb967e8b98b6b 2 years ago 261MB

贴一段咨询chatgpt的回复:

Q:请问fabric安装链码时候出现这种报错是什么原因?如何解决呢?

这个报错似乎是由于在构建链码镜像时缺少必要的依赖项而导致的。具体来说,它可能是因为需要升级到使用支持 “unsafe.Slice” 的 Golang 版本,或者在 Dockerfile 中添加必要的依赖项。

尝试以下方法解决问题:

  1. 确保您的 Golang 版本是 1.16 或更高版本。
  2. 确保您已经安装了 Docker 和 Docker Compose。
  3. 检查您的链码代码和 Dockerfile 是否正确,特别是是否设置了正确的环境变量和依赖项。
  4. 在 Dockerfile 中添加必要的依赖项,例如 sudo,gcc,g++,make 等。
  5. 重新构建链码镜像并重新运行peer lifecycle chaincode install 命令。

如果这些步骤都无法解决问题,请检查您的链码代码并确保它们是正确的,并且可以在本地编译和运行。您也可以尝试使用不同的 Golang 版本或尝试在另一台机器上构建链码镜像。

Q:这个golang版本是指peer容器中的golang版本还是指Linux本地系统中的golang版本?

这里指的是在您安装链码的那台机器上的 Golang 版本。如果是在 CentOS 容器中运行 peer,则需要检查 CentOS 容器中的 Golang 版本是否为 1.16 或更高版本。如果在本地系统上运行,则需要检查本地系统上的 Golang 版本。
请注意,peer 容器和本地系统中的 Golang 版本可能不同。在构建链码镜像时,您需要使用 Dockerfile 中指定的 Golang 版本来构建链码二进制文件。因此,请确保您在 Dockerfile 中正确指定了所需的 Golang 版本。