HyperLedger Fabric 获取区块信息 - Fabric Go SDK
HyperLedger Fabric Get Block Info - Fabric Go SDK
我曾经使用 Fabric 和 Fabric GoLang SDK 设置 Fabric 网络并部署 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
一般情况下,sdk都会提供你说的GetBlockInfo等基本方法,我搜索了GoLang SDK,没有找到。而 Java sdk 提供了这种方法 reference this java test 。
使用这些方法的另一种方式(你必须了解一点fabric源代码),实际上这些方法包含在系统链码中,你可以像调用普通链码一样调用系统chancode。
示例如下:
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是一个系统密码,你可以下载fabric source code,and from qscc file,你可以看到(它提供了很多调用服务):
GetChainInfo string = "GetChainInfo"
GetBlockByNumber string = "GetBlockByNumber"
GetBlockByHash string = "GetBlockByHash"
GetTransactionByID string = "GetTransactionByID"
GetBlockByTxID string = "GetBlockByTxID"
Go SDK 现在包含查询区块信息的方法。这些方法包含在 ledger client package.
中
您可以在 ledger client integration test 中查看示例。
Go sdk(fabric-sdk-go/pkg/client/ledger) 提供了几种获取区块链信息的方法。例如:
...
client, err := ledger.New(channelContext)
block, err := client.QueryBlockByHash(blockHash)
block, err = client.QueryBlock(blockNumber)
我曾经使用 Fabric 和 Fabric GoLang SDK 设置 Fabric 网络并部署 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
一般情况下,sdk都会提供你说的GetBlockInfo等基本方法,我搜索了GoLang SDK,没有找到。而 Java sdk 提供了这种方法 reference this java test 。
使用这些方法的另一种方式(你必须了解一点fabric源代码),实际上这些方法包含在系统链码中,你可以像调用普通链码一样调用系统chancode。
示例如下: 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是一个系统密码,你可以下载fabric source code,and from qscc file,你可以看到(它提供了很多调用服务):
GetChainInfo string = "GetChainInfo"
GetBlockByNumber string = "GetBlockByNumber"
GetBlockByHash string = "GetBlockByHash"
GetTransactionByID string = "GetTransactionByID"
GetBlockByTxID string = "GetBlockByTxID"
Go SDK 现在包含查询区块信息的方法。这些方法包含在 ledger client package.
中您可以在 ledger client integration test 中查看示例。
Go sdk(fabric-sdk-go/pkg/client/ledger) 提供了几种获取区块链信息的方法。例如:
...
client, err := ledger.New(channelContext)
block, err := client.QueryBlockByHash(blockHash)
block, err = client.QueryBlock(blockNumber)