【问题标题】:HyperLedger Fabric Get Block Info - Fabric Go SDKHyperLedger Fabric 获取区块信息 - Fabric Go SDK
【发布时间】:2018-02-11 06:02:12
【问题描述】:

我曾经建立一个 Fabric 网络,并使用 Fabric 和 Fabric GoLang SDK 部署了一个 Fabric 网络和基本应用程序。我能够进行查询并写入链。 有没有办法检索块信息?比如区块高度和当前哈希?

+ I'm unable to find out a documentation for GoLang Fabric SDK.

我遵循以下代码和教程,

Fabric Basic App - Tutorial https://chainhero.io/2017/07/tutorial-build-blockchain-app/

Fabric Basic App using GoLang SDK - Code https://github.com/chainHero/heroes-service/

GoLang SDK - Official SDK https://github.com/hyperledger/fabric-sdk-go

【问题讨论】:

    标签: go hyperledger-fabric hyperledger


    【解决方案1】:

    一般sdk会提供你说的GetBlockInfo这样的基本方法,我搜索了GoLang SDK,找不到。虽然 Java sdk 提供了这种方法 reference this java test

    使用这些方法的另一种方式(你必须知道一点fabric源代码),实际上这些方法包含在系统链码中,你可以像调用普通链码一样调用系统链码。

    一个例子如下: from the go sdk test,你可以看到这个,

    response, err := chClient.Query(chclient.Request{ChaincodeID: ccID, Fcn: "invoke", Args: integration.ExampleCCQueryArgs()})
    

    只需更改参数

    response, err := chClient.Query(chclient.Request{ChaincodeID: "qscc", Fcn: "invoke", Args: integration.ExampleCCQueryArgs("GetChainInfo")})
    

    qscc是一个系统的chancode,你可以下载fabric source code,从qscc file,你可以看到(它提供了很多调用服务):

    GetChainInfo       string = "GetChainInfo"
    GetBlockByNumber   string = "GetBlockByNumber"
    GetBlockByHash     string = "GetBlockByHash"
    GetTransactionByID string = "GetTransactionByID"
    GetBlockByTxID     string = "GetBlockByTxID"
    

    【讨论】:

    • 您好吉姆,感谢您的回答。它仍然很有帮助。我有一个问题,现在是否有任何替代方法可以使用fabric-sdk-go 中的 TxnID 获取数据?例如,我在分类帐中存储了A 并得到了TxnHash B,现在我想使用TxnHash B 查询分类帐以获取存储的数据。我遇到了ledger.QueryTransaction(),但它需要良好的解析逻辑才能从中获取详细信息。
    【解决方案2】:

    Go sdk(fabric-sdk-go/pkg/client/ledger) 提供了几种获取区块链信息的方法。例如:

    ...
    client, err := ledger.New(channelContext)
    block, err := client.QueryBlockByHash(blockHash)
    block, err = client.QueryBlock(blockNumber)
    

    【讨论】:

      【解决方案3】:

      Go SDK 现在包含查询区块信息的方法。这些方法包含在ledger client package 中。

      您可以在ledger client integration test 中查看示例。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-28
        • 1970-01-01
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 2017-04-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多