Hyperledger fabric Hyperledger结构:对等链码实例化错误

Hyperledger fabric Hyperledger结构:对等链码实例化错误,hyperledger-fabric,hyperledger,Hyperledger Fabric,Hyperledger,启动容器时出错:无法生成特定于平台的docker 生成:从生成:1返回的错误“无法加载包:包” ../../bin/github.com/hyperledger/fabric/chaincode/marbles:打开 /bin/github.com/hyperledger/fabric/chaincode/marbles:没有这样的文件或 目录 我看到它正在寻找一个相对目录。相对于什么?链码安装很好。如果安装了链码,为什么找不到它进行实例化?1个对等。1个solo orderer。频道连接很好。

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


我看到它正在寻找一个相对目录。相对于什么?链码安装很好。如果安装了链码,为什么找不到它进行实例化?1个对等。1个solo orderer。频道连接很好。

链码安装并不意味着你已经正确映射了链码路径

peer chaincode install -p {path} -n {} -v {}
链码实例化构建并实例化链码

peer chaincode instantiate -n {} -v {} -c {} -C {}
  • 在docker compose文件中,仔细检查 cli
  • 安装链码时使用实际路径
路径映射中有一个“隐藏”的期望。它期望在gopath下有一个/src目录,这给我带来了一些麻烦,直到我找到它为止

以下是我的解决方案fwiw:

在对等方的compose yaml中,您将设置env变量:

-GOPATH=/opt/GOPATH

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

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

peer chaincode install /${SIGNED_CHAINCODE_LOCATION} 
SIGNED\u CHAINCODE\u LOCATION=/opt/gopath/src/CHAINCODE//.out
对等链码安装/${SIGNED\u chaincode\u LOCATION}
并按正常方式实例化。 如果不需要打包和签名,只需使用目录而不是.out文件


在我的例子中,我在对等机中添加了一个工作目录,该目录将链码设置为我的基本区块链目录的相对目录:
-./chaincode/:/opt/gopath/src/chaincode/
,并将go文件夹转储到其中。

看起来它无法编译链码,因为它需要一个未安装在容器中的依赖包。I从链码所在的目录中卸载。即,-p./尝试重新安装会产生已存在的正确错误。链码.0文件存在于/var/hyperledger/production/chaincodes中。未使用docker。我知道它在安装时说“OK”,我相信它说“收到0块”或类似的内容。啊。因此链码路径必须是比如github.com/hyperledger/fabric/chaincode/ccname,它在某种程度上是相对于gopath的。完整路径是/usr/local/go/src/github.com/hyperledger/fabric/chaincode/ccname。$gopath是/usr/local/go/bin。$GOROOT是/usr/local/go。所以fabric需要$GOROOT/src/?中的链码看起来很奇怪,但效果不错。thx@MohamedYoussef抱歉劫持了adv中的问题我正在使用NodeJS SDK,我在安装时得到了一个ok,在实例化时得到了一个fail。你能看看这个问题吗:?