Hyperledger Fabric can't find go files when building chaincode

最后都变了- 提交于 2019-12-11 11:24:56

问题


Problem
I'm getting the following error on a 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.

Context
I'm trying to instantiate a chaincode package after having successfully installed it. Both the install and instantiate proposals are created by the Fabric NodeJS SDK (fabric-client).

Steps leading up to the problem

  • Package a go file using the fabric-client (succeeds)
  • Create an install proposal and send it to the peer (succeeds
  • Create and instantiate proposal and send it to the peer (fails with above error-message)

Steps taken to solve the problem
I tried to assert how the chaincode container create process works by reading the code. What I got from it was the following:
- The chaincode is build using the fabric-ccenv image
- It loads a .tar as an Inputstream (The package?)

I tried adding the files to the go-path but I still couldn't get it to work.

What I want to know
- Where does the chaincode building process expect these files to be?
- Why do I need to provide the files when I've previously sent a package of chaincode inside an InstallRequest?

Further information
I'm also getting an error about an MSP being unknown. Something along the lines of: Error: MSP Org1MSP is unkown. This happens during deserialization of the proposal.
Which is weird because I'm 100% that MSP exists. What I'm not certain about is whether I need to add anchor peers to the channel I'm installing and instantiating the chaincode on in order for the MSP to be found. I thought that happens during channel creation.

Versions
This happens in the following versions:
- 1.0.0 - 1.0.6

Please do not suggest I try version 1.1 because I cannot upgrade easily.

Please advise.


回答1:


Above was caused by an actual unknown MSP.

Double check the profile/profiles in configtx.yaml used for creating the channel and the genesis block for orderers. I had a mismatch between those.

I read a related issue [FAB-7952] in Fabric's issue manager and it made me think something else was going on, instead of an actual unknown MSP.



来源:https://stackoverflow.com/questions/50963477/hyperledger-fabric-cant-find-go-files-when-building-chaincode

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!