Hyperledger Fabric:对等链代码实例化错误

时间:2017-10-18 13:11:32

标签: hyperledger-fabric hyperledger

  

启动容器时出错:无法生成特定于平台的docker   build:从build返回的错误:1"无法加载package:package   ../../bin/github.com/hyperledger/fabric/chaincode/marbles:打开   /bin/github.com/hyperledger/fabric/chaincode/marbles:没有这样的文件或   。目录

我看到它正在寻找一个相对目录。相对于什么? chaincode安装很好。如果安装了链代码,为什么找不到实例化的代码呢? 1同行。 1个独奏订货人。渠道很好。

2 个答案:

答案 0 :(得分:4)

Chaincode安装并不意味着您已正确映射了您的链代码路径,

peer chaincode install -p {path} -n {} -v {}

Chaincode实例化构建并实例化您的链代码。

peer chaincode instantiate -n {} -v {} -c {} -C {}
  • 在docker compose文件中,双击检查卷/链代码映射 cli。
  • 安装链码时使用实际路径。

答案 1 :(得分:2)

有一个"隐藏"路径映射中的期望。它期望在gopath下有一个/ src目录,直到我弄清楚它才会给我带来麻烦。

这是我的解决方案fwiw:

在为对等体编写yaml时,您将设置env变量:

- GOPATH=/opt/gopath

然后在CLI中,您可以安装并实例化:

SIGNED_CHAINCODE_LOCATION=/opt/gopath/src/chaincode/<cc_dir>/<signed_cc>.out

peer chaincode install /${SIGNED_CHAINCODE_LOCATION} 

正常实例化。 如果您不需要打包和签名,只需使用目录而不是.out文件。

在我的情况下,我在对等体中添加了一个工作目录,它将链代码设置为我的基本区块链目录的相对目录:- ./chaincode/:/opt/gopath/src/chaincode/并将go文件夹转储到那里。