在部署自己的链码时遇到了报错500的提示,在网上查阅了很多资料,最终确定是自己安装的go语言版本与go.mod中的版本不同!
1.确定自己系统安装的go语言版本
go version
2.确定go.mod中的go版本
cat go.mod module
3.不相同即按照go.mod中的go版本将自己下载的golang删除并重新安装与go.mod相同版本的golang!
sudo rm -rf /usr/local/go
//在这里直接卸载,配置文件不用修改,安装好新版本后可直接使用,不用配置环境变量
根据页面的安装指引,将go文件夹解压到/usr/local/文件夹下
tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
//将文件名更改为你自己下载的安装包文件名
测试是否按安装成功
4.打包链码
打包链码前进行go evn配置,以下配置需要在peer节点中的链码映射文件夹中进行设置
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
设置完成即可进行go.mod生成与打包
go mod init//初始化mod文件
go mod tidy//删除错误或者不使用的modules
go mod vendor//生成vendor文件
接下来就是正常的打包链码和安装链码
//打包链码
peer lifecycle chaincode package sacc.tar.gz --path /opt/gopath/src/github.com/hyperledger/multiple-deployment/chaincode/go --label sacc_1
//链码安装
peer lifecycle chaincode install sacc.tar.gz
最终排除错误,顺利安装!