查询HyperLedger Fabric区块链时出错 - “无法获取链代码的部署事务”

时间:2016-09-29 05:54:27

标签: blockchain hyperledger hyperledger-fabric

我在Fabric Network Setup指南的帮助下设置了4个对等体。我设法部署CC然后使用REST API调用调用invoke函数。

虽然这两个消息都成功,但查询消息却失败了。这很奇怪,因为当同一组命令应用于在dev模式下实例化的单个对等体(对等节点start --peer-chaincodedev)时,它工作正常。

请注意,使用Docker容器设置了4个节点。以下是查询的JSON响应的示例:

{
"jsonrpc":"2.0",
"error":{
"code":-32003,
"message":"Query failure",
"data":"Error when querying chaincode: Error:Failed to launch chaincode spec(Could not get deployment transaction for 04233c6dd8364b9f0749882eb6d1b50992b942aa0a664182946f411ab46802a88574932ccd75f8c75e780036e363d52dd56ccadc2bfde95709fc39148d76f050 - LedgerError - ResourceNotFound: ledger: resource not found)"
},
"id":5
}

当我执行GET调用以根据在调用调用之后检索到的哈希检索事务的数据时,响应表明它无法找到指定的事务。

查看块中的数据会产生一个我认为没有数据的块 - 这意味着部署事务失败了。

修改: 以下是通过JSON传递的params,用于在URL http://172.17.0.2:7050/chaincode(POST)

进行部署
{
"jsonrpc":"2.0",
"method":"deploy",
"params":{
"type":1,
"chaincodeID":{
"path":"github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02"
},
"ctorMsg":{
"function":"init",
"args":[
"a",
"100",
"b",
"200"
]
}
},
"id":1
}

1 个答案:

答案 0 :(得分:0)

请在部署链代码时查看日志记录,如果您看到消息Error building images: Tag latest not found in repository docker.io/hyperledger/fabric-baseimage.,那么我猜您的问题是docker image hyperledger / fabric-baseimage缺失。

解决问题,只需拉出hyperledger / fabric-baseimage图像并标记为最新

docker pull hyperledger/fabric-baseimage:x86_64-0.2.2
docker tag <image_id> hyperledger/fabric-baseimage:latest

基本上,当您部署链代码时,对等节点请求docker主机运行fabric-baseimage来运行链代码。您可以docker ps,如果您可以成功部署链码,您将看到dev-node_name-04233c6dd8364b9f0749882eb6d1b50992b942aa0a664182946f411ab46802a88574932ccd75f8c75e780036e363d52dd56ccadc2bfde95709fc39148d76f050正在运行。