我正在尝试自定义金枪鱼应用程序示例的金枪鱼应用程序链码。我想在我的链码中使用cid包来做出关于允许谁运行链码的ABAC决定。当我尝试安装chaincode时,出现以下错误:
Error: Error getting chaincode code chaincode:
Error getting chaincode package bytes: Error obtaining dependencies for github.com/hyperledger/fabric/core/chaincode/lib/cid:
<go, [list -f {{ join .Deps "\n"}} github.com/hyperledger/fabric/core/chaincode/lib/cid]>: failed with error: "exit status 1"
cannot load package: package github.com/hyperledger/fabric/core/chaincode/lib/cid: cannot find package "github.com/hyperledger/fabric/core/chaincode/lib/cid" in any of:
/opt/go/src/github.com/hyperledger/fabric/core/chaincode/lib/cid (from $GOROOT)
/opt/gopath/src/github.com/hyperledger/fabric/core/chaincode/lib/cid (from $GOPATH)
我使用Docker来运行对等,订购者,ca和cli容器。用于构建链码的Docker映像是hyperledger / fabric-ccenv。该映像是使用Dockerfile创建的;我发现的有趣的一行是:
ADD payload/goshim.tar.bz2 $GOPATH/src/
它将tar.bz2添加到$ GOPATH / src文件夹中(我相信)。.tar.bz2文件包含链码使用的所有Go软件包。我试图插入cid包并使用其中的包创建一个新的.tar.bz2文件。然后,我重建了图像。该图像现在包含cid程序包,但是我仍然遇到相同的错误。
为什么仍然缺少包裹?
在金枪鱼应用程序的startFabric.sh中,使用以下命令启动cli容器:
docker-compose -f ./docker-compose.yml up -d cli
查看您撰写的yaml文件中持久卷的安装声明。您应该看到类似这样的内容,因为金枪鱼应用程序基于fabric-sample中的fabcar:
./../chaincode/:/opt/gopath/src/github.com/
如果看到此声明,请在本地计算机中将文件夹/ hyperledger / fabric / core / chaincode / lib / cid复制到chaincode文件夹中。如果您正在使用最新版本的结构样本(https://github.com/hyperledger/fabric-samples),则应该在chaincode / abac中找到它。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句