fabric 1.1 找不到cid库

在升级fabric到1.1版本后,遇到导入cid库时的错误。尝试通过安装govendor、修改docker-compose.yaml中image版本等方式解决,但未成功。最终通过在docker-compose的cli端设置volume映射,将cid库复制到chaincode目录下,成功解决了找不到cid库的问题。此问题困扰了一周,对于shim包如何找到依赖的疑问尚待解答。
摘要由CSDN通过智能技术生成

项目一开始使用的是 fabric1.0  但后续因为需要对用户身份进行管理选择使用cid库,但是cid库在 fabric 1.1中。

使用import 导库

"github.com/hyperledger/fabric/core/chaincode/lib/cid"

但是在 cli端安装链码时 出现错误 报  not find package opt/src...../cid  很纳闷已经将 fabric 版本切换至 1.1 且手动也能找到 cid库

尝试解决方法:

1. 安装 Govendor 在 fabric 目录下

govendor add +external

安装链码不在报错,但是安装的链码并不是我想要的。删除掉错误链码后链码实例化报错,该方法无法解决问题。

2.设想 Shim包没有报错 可能 安装链码时使用的时 docker容器中的包,可能镜像文件仍然是1.0 所以在docker-compose.yaml 中修改 orderer 与  peer 所使用的image 版本

image: hyperledger/fabric-orderer:x86_64-1.0.0

修改:
image: hyperledger/fabric-orderer:x86_64-1.1.0

仍然找不到库

3.最终解决方法

https://stackoverflow.com/questions/49560104/cannot-find-package-cid-in-goroot-or-gopath 

docker-compose cli端  volume映射

./../chaincode:/opt/gopath/src/github.com/

将  hyperleger/fabric/core/chaincoe/lib/cid  放到 chaincode  目录下 成功解决问题

 

PS:这个问题困扰了我一周左右     虽然问题结局了还是很疑惑  shim包为什么能找到  有没有人能解释一下  fabric 中 安装链码时使用的依赖是怎么找的

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值