【问题标题】:Hyperledger Fabric can't find go files when building chaincodeHyperledger Fabric 在构建链码时找不到 go 文件
【发布时间】:2018-06-27 18:12:56
【问题描述】:

问题
我在 fabric-peer 上收到以下错误:Failed to generate platform-specific docker build: Error returned from build: 1 "can't load package: package chaincodes/simple: no buildable Go source files in /chaincode/input/src/chaincodes/simple

上下文
成功安装后,我正在尝试实例化链代码包。 安装和实例化提议都是由 Fabric NodeJS SDK(fabric-client)创建的。

导致问题的步骤

  • 使用fabric-client打包一个go文件(成功)
  • 创建安装提案并将其发送给对等方(成功
  • 创建并实例化提案并将其发送给对等方(失败并显示上述错误消息)

解决问题的步骤
我试图通过阅读代码来断言链码容器创建过程是如何工作的。 我从中得到的是:
- 链码是使用 fabric-ccenv 图像构建的
- 它将 .tar 作为 Inputstream 加载(包?)

我尝试将文件添加到 go-path,但仍然无法正常工作。

我想知道的
- 链码构建过程期望这些文件在哪里?
- 当我之前在 InstallRequest 中发送了一个链代码包时,为什么我需要提供这些文件?

更多信息
我还收到有关 MSP 未知的错误。类似于:Error: MSP Org1MSP is unkown。这发生在提案的反序列化过程中。
这很奇怪,因为我 100% 认为 MSP 存在。我不确定的是我是否需要将锚点添加到我正在安装和实例化链码的通道中,以便找到 MSP。 我认为这是在频道创建期间发生的。

版本
这发生在以下版本中:
- 1.0.0 - 1.0.6

请不要建议我尝试 1.1 版本,因为我无法轻松升级。

请指教。

【问题讨论】:

  • 嗨,我也收到了同样的错误。我尝试使用 Go Chaincode,它工作正常,但是当我开始实例化 Java 链码时,它遇到了像你这样的问题。你能告诉我解决方案吗?我检查了我的 MSP 目录是否正常。

标签: hyperledger-fabric hyperledger


【解决方案1】:

以上是由实际的unknown MSP 引起的。

仔细检查configtx.yaml 中用于为订购者创建通道和创世块的配置文件。我在它们之间不匹配。

我在 Fabric 的问题管理器中阅读了一个相关问题 [FAB-7952],它让我认为发生了其他事情,而不是实际未知的 MSP。

【讨论】: