【问题标题】:Querying the ledger in Hyper Ledger Fabric Network在 Hyperledger Fabric 网络中查询账本
【发布时间】:2018-06-28 14:27:47
【问题描述】:

我参考了以下链接以查询 Hyper-ledger Fabric 网络中的分类帐:

http://hyperledger-fabric.readthedocs.io/en/release/write_first_app.html

在上面的链接中,他们提供了 git-hub 链接,我在其中完成了所有步骤,例如, - 启动网络 - 运行节点脚本来查询账本,例如invoke.js、query.js

但在那些脚本中,他们提供了一个 Car 示例,在其中他们调用了不同的函数来查询所有汽车、添加汽车等。

我还运行了以下链接中提到的弹珠演示: https://github.com/IBM-Blockchain/marbles

在这个链接中,他们运行了同一个名为“fabric-samples”的网络,我已经提到了这个问题的第一个链接。

所以,现在我想对弹珠运行查询,为此我更改了 query.js,并且我将链代码 id 指定为“marbles”,并赋予函数名称“readMarble”,并在参数中传递弹珠名称。

然后我有 node query.js 所以它给出了如下错误:

存储路径:/home/riyasoni/riya/blockchain/workspace/fabric-samples/fabcar/hfc-key-store 从持久化成功加载user1 错误:[client-utils.js]:sendPeersProposal - 承诺被拒绝:错误:2 UNKNOWN:链码错误(状态:500,消息:收到未知调用函数名称 - 'readMarble') 在新的 createStatusError (/home/riyasoni/riya/blockchain/workspace/fabric-samples/fabcar/node_modules/grpc/src/client.js:65:15) 在/home/riyasoni/riya/blockchain/workspace/fabric-samples/fabcar/node_modules/grpc/src/client.js:568:15 查询已完成,正在检查结果 来自查询的错误 = { 错误:2 UNKNOWN:链码错误(状态:500,消息:收到未知的调用函数名称 - 'readMarble') 在新的 createStatusError (/home/riyasoni/riya/blockchain/workspace/fabric-samples/fabcar/node_modules/grpc/src/client.js:65:15) 在/home/riyasoni/riya/blockchain/workspace/fabric-samples/fabcar/node_modules/grpc/src/client.js:568:15 代码:2, 元数据:元数据{_internal_repr:{}​​}, 详细信息:'链码错误(状态:500,消息:收到未知的调用函数名称 - \'readMarble\')'}

那么,谁能建议我如何查询分类帐中的弹珠演示相关功能和交易?

【问题讨论】:

  • 因为grpc从1.7.2更新到1.8.4

标签: node.js blockchain hyperledger


【解决方案1】:

readMarble 不是一个有效的函数。检查拼写是否正确。 另外,请确保 readMarble 可以从 Invoke 函数中调用。

【讨论】:

    【解决方案2】:

    如果您查看 marbles.go 的第 144 - 177 行,您将看到可用函数名称的列表。 readMarble 不是其中之一。您还将看到第 176 行返回您的错误消息。 return shim.Error("收到未知的调用函数名 - '" + function + "'")

    【讨论】:

    • 是的,我看到了,你可以看到 read Marble 函数如下所述: // Handle different functions if function == "initMarble" { //create a new marble return t. initMarble(stub, args) }else if function == "readMarble" { //read a marble return t.readMarble(stub, args) } 但是,他们已经给出了所有这些脚本和一些汽车相关数据的查询。我想查询弹珠,这就是为什么我更改了链码 ID 、函数名称并在参数中传递弹珠名称。但它不起作用。
    • 感谢您的快速回复。实际上你是对的,我调用了 marbles.go 中不存在的不同函数,所以现在查询弹珠工作正常。但是你能告诉我这些弹珠数据存储在磁盘中的对等位置吗?
    • 我认为这应该作为一个新问题提出。
    • 是的,我已经在以下链接中提到的论坛上添加了这个问题:stackoverflow.com/questions/48187808/… 如果您对此有任何想法,请提供您的答案。
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多