Hyperledger Fabric 2.2部署asset-transfer-basic链码报错求助
解决Hyperledger Fabric 2.2部署Go链码的权限与打包问题
从错误信息来看,核心问题是Go模块缓存目录无写入权限,导致链码打包流程失败,进而出现找不到basic.tar.gz的连锁错误,以下是分步解决方法:
1. 修复Go模块缓存的权限问题
错误提示mkdir /home/hypernew/go/pkg/mod: permission denied,说明当前用户没有读写Go模块缓存目录的权限,可通过两种方式解决:
- 方式一:修改目录所有权
执行命令将缓存目录的权限归属改为当前用户:sudo chown -R hypernew:hypernew /home/hypernew/go - 方式二:临时指定自定义缓存目录
如果不想修改系统目录权限,可临时设置GOMODCACHE环境变量到你有权限的目录:export GOMODCACHE=/tmp/go-mod-cache mkdir -p $GOMODCACHE
2. 重新执行链码部署
先清理可能残留的失败文件,再重新运行部署命令:
rm -f basic.tar.gz ./network.sh deployCC -ccn basic -ccp ../asset-transfer-basic/chaincode-go -ccl go
3. 额外检查项
- 确认
../asset-transfer-basic/chaincode-go路径正确,且该目录下存在go.mod和go.sum文件;若没有,进入该目录执行go mod init和go mod tidy生成依赖文件。 - 确保当前用户对
network.sh所在目录有读写权限,避免生成的链码包无法写入。
内容的提问来源于stack exchange,提问作者Devdatt N
相关产品推荐
相关产品推荐

