【问题标题】:Error when querying HyperLedger Fabric Blockchain - "Could not get deployment transaction for chaincode"查询 HyperLedger Fabric 区块链时出错 - “无法获取链代码的部署事务”
【发布时间】:2016-09-29 05:54:26
【问题描述】:

我在 Fabric 网络设置指南的帮助下设置了 4 个对等点。我设法部署了一个 CC,然后使用 REST API 调用调用了调用函数。

虽然这两条消息都导致了成功,但查询消息只是失败了。这很奇怪,因为当将相同的命令集应用于在开发模式下实例化的单个对等点(对等节点启动 --peer-chaincodedev)时,它可以正常工作。

请注意,这 4 个节点是使用 Docker 容器设置的。以下是查询的 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 传递的参数,用于在 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
}

【问题讨论】:

  • 能否请您显示您用于部署的命令?
  • @SufiyanGhori 以下是我在 url 使用 REST 传递的命令: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 }
  • 这似乎没问题。你能告诉我们你用的是哪个版本的面料吗
  • @SufiyanGhori 我设法在名为 Yeasy 的用户的 Github 存储库中使用 docker-compose 文件启动了对等点。我曾经通过传递参数在 4 个终端中实例化 4 个对等点,使用 docker-compose up 方法,对等点完美启动,链代码部署/调用/查询运行良好。链接:github.com/yeasy/docker-compose-files/tree/master/hyperledger/…

标签: blockchain hyperledger hyperledger-fabric


【解决方案1】:

请在部署链代码时查看日志记录,如果您看到消息 Error building images: Tag latest not found in repository docker.io/hyperledger/fabric-baseimage.,那么我猜您的问题是缺少 docker 映像 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正在运行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-05-09
    • 1970-01-01
    • 1970-01-01
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多