安装链代码时出错 - 无法计算依赖项:包不完整

Error when installing chaincode - failed to calculate dependencies: incomplete package

我正在尝试安装Chaincode,按照hyperledger的教程。但是当我尝试 运行 命令时

peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 0

终端报错

Error: error getting chaincode deployment spec for mycc: error getting chaincode package bytes: failed to calculate dependencies: incomplete package: github.com/hyperledger/fabric-chaincode-go/shim

我看到其他人也有类似的问题,但还没有答案。我对这些东西很陌生,所以任何建议都会有所帮助。

您没有说明您使用的是什么版本的 Fabric 和示例,但这看起来像是针对 Fabric 2.0 所做的更改,并在 release notes“Go 链代码的填充程序包和依赖项”中进行了描述不再包含在 链代码构建环境。"

相关的 Jira entry.

中有更多详细信息

尝试将 shim 包下载到 GOPATH

去获取 github.com/hyperledger/fabric-chaincode-go/shim

这会将 shim 包下载到 GOPATH 中的 /src/github.com/hyperledger/fabric-chaincode-go/shim。然后在您的链代码中的 import 中提供此 shim 包的路径。

应该如下所示:

进口( "github.com/hyperledger/fabric-chaincode-go/shim" )

我今天解决了:

登录CLI容器后执行以下命令(导入shim包)。这会将包导入到编译链代码的 cli 容器中。

去获取github.com/hyperledger/fabric-chaincode-go/shim

然后执行

peer chaincode install -p chaincodedev/chaincode/sacc -n mycc -v 0

它会干杯的。

就我而言,原因是路径不正确。 CLI 容器工作目录已经 chaincodedev 部分路径

cli:
    ...
    working_dir: /opt/gopath/src/chaincodedev

您可以执行以下操作来验证您的情况是否属实

docker exec -it cli bash
pwd

你一定要看/opt/gopath/src/chaincodedev.

所以我需要做的就是从命令路径

中删除chaincodedev
peer chaincode install -p chaincode/sacc -n mycc -v 0