0

我和我的团队正在使用 Bluemix Blockchain 服务开发一个应用程序,在 1.0 更新之前我们一直在使用该应用程序。我们认为这可能是与 ibm-blockchain.js 库相关的错误,但是我们尝试通过 REST 部署它,但仍然出现错误:

{
 "jsonrpc": "2.0",
 "error": {
     "code": -32001,
     "message": "Deployment failure",
     "data": "Error when deploying chaincode: Error getting chaincode package bytes: Error getting code 'go get' failed with error: 'exit status 2'\n# github.com/ibm-blockchain/learn-chaincode/finished\n/go/_usercode_/493306176/src/github.com/ibm-blockchain/learn-chaincode/finished/chaincode_finished.go:38: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/493306176/src/github.com/ibm-blockchain/learn-chaincode/finished/chaincode_finished.go:52: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/493306176/src/github.com/ibm-blockchain/learn-chaincode/finished/chaincode_finished.go:67: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/493306176/src/github.com/ibm-blockchain/learn-chaincode/finished/chaincode_finished.go:80: undefined: shim.ChaincodeStubInterface\n/go/_usercode_/493306176/src/github.com/ibm-blockchain/learn-chaincode/finished/chaincode_finished.go:99: undefined: shim.ChaincodeStubInterface\n"
     },
 "id": 1
}

我们的服务仍在使用 0.5 版本。我们也把本地版本更新到了1.0,也试过了,看看报错是不是一样,好像是这样:

12:16:55.666 [devops] getChaincodeBytes -> ERRO 034 Error getting chaincode package bytes: Error getting code 'go get' failed with error: "exit status 1"
package github.com/VitorSousaCode/chaincodes/tree/master/final: cannot find package "github.com/VitorSousaCode/chaincodes/tree/master/final" in any of:
    /opt/go/src/github.com/VitorSousaCode/chaincodes/tree/master/final (from $GOROOT)
    /opt/gopath/_usercode_/796234422/src/github.com/VitorSousaCode/chaincodes/tree/master/final (from $GOPATH)
    /opt/gopath/src/github.com/VitorSousaCode/chaincodes/tree/master/final
12:16:55.671 [devops] Deploy -> ERRO 035 Error deploying chaincode spec: type:GOLANG chaincodeID:<path:"https://github.com/VitorSousaCode/chaincodes/tree/master/final" > ctorMsg:<args:"init" > secureContext:"user_type1_xxxxxxxxx"

有没有人经历过类似的事情?有人知道我们是否有任何方法可以继续使用我们之前开发的 Go 链代码而不进行重大更改?

4

1 回答 1

3

bluemix 服务在 2016 年 11 月 10 日之前使用旧版本v0.5 的 Hyperledger Fabric。此版本使用旧语法,即shim.ChaincodeStub

bluemix 服务状态页面显示,在 2016 年 10 月 11 日,bluemix 上的 Fabric 版本已更新为v0.6.1。这个较新的版本应该使用新的语法,即shim.ChaincodeStubInterface.

您的部署事务失败,因为您在链码中的语法与结构版本不一致。

笔记

  • 如果您正在使用带有 v0.5 版本 Fabric 的 bluemix 服务,请确保您的链代码使用以下shim.ChaincodeStub语法成功构建

  • 如果您使用带有 v0.6 版本的 fabric 的 buemix 服务,请确保 使用shim.ChaincodeStubInterface.

于 2016-11-17T03:50:26.810 回答