I can run the chaincode from the following official path: https://github.com/ibm-blockchain/learn-chaincode/finished github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
# peer chaincode deploy -p github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02 -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
but cannot run chainncode from my own github path: https://github.com/jeffyxia/hyperledger/trade
# peer chaincode deploy -p https://github.com/jeffyxia/hyperledger/trade -c '{"Function":"init", "Args": ["a","100", "b", "200"]}'
the error info is:
Error: Error building chaincode: rpc error: code = 2 desc = Error getting
chaincode package bytes: Error getting code 'go get' failed with error: "exit status 2"
# github.com/jeffyxia/hyperledger/hello_world
/go/_usercode_/519629987/src/github.com/jeffyxia/hyperledger/hello_world/chaincode_example01.go:31: cannot use new(SimpleChaincode) (type *SimpleChaincode) as type shim.Chaincode in argument to shim.Start:
*SimpleChaincode does not implement shim.Chaincode (wrong type for Init method)
have Init(*shim.ChaincodeStub, string, []string) ([]byte, error)
want Init(shim.ChaincodeStubInterface, string, []string) ([]byte, error)
supplement info: Ubuntu 16.04 without go language environment, use PBFT algrithm.
how to fix this problem, thx.
First of all, you may want to use the latest version of fabric from its official repository. Secondly, the error is self-explanatory,
*SimpleChaincode does not implement shim.Chaincode (wrong type for Init method)
have Init(*shim.ChaincodeStub, string, []string) ([]byte, error)
want Init(shim.ChaincodeStubInterface, string, []string) ([]byte, error)
You need to replace stub *shim.ChaincodeStub
with stub shim.ChaincodeStubInterface
everywhere in your go file. Please read this as well, https://github.com/IBM-Blockchain/ibm-blockchain-issues/issues/29