首页 文章

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

提问于
浏览
2

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

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

2 回答

  • 3

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

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

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

    peer chaincode instantiate -n {} -v {} -c {} -C {}
    
    • 在docker compose文件中,双击检查cli的卷/链代码映射 .

    • 安装链码时使用实际路径 .

  • 1

    路径映射中存在“隐藏”的期望 . 它期望在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文件夹转储到那里 .

相关问题