主页 > imtoken手机下载 > Hyperledger Fabric 如何查询历史交易?

Hyperledger Fabric 如何查询历史交易?

imtoken手机下载 2023-03-15 07:35:06

从以太坊、比特币等其他区块链进入Hyperledger Fabric的新手经常会问:如何查询Hyperledger Fabric区块链上的历史交易? 的确,既然区块链或账本上都有交易记录,为什么我们就不能找到一个简单的API来查询历史交易呢?

在以太坊、比特币等区块链平台中,通常会提供简单的JSON RPC API接口,应用程序只需要调用这些RPC API即可查询区块或历史交易。 Hyperledger Fabric 也有类似的 API,但情况略有不同。 根据查询的目的如何查询usdt区块记录,可以分为两种方法。

1.使用系统链码qscc

okex里usdt怎么转成usdt_如何查询usdt区块记录_usdt查询网站

如果你正在寻找类似以太坊/比特币的区块查询和交易查询API,你应该使用系统链代码QSCC,它提供了以下方法:

调用系统链码和调用你自己的链码没有区别。 例如下面是调用qscc链码的GetChainInfo()方法的go语言测试代码:

如何查询usdt区块记录_usdt查询网站_okex里usdt怎么转成usdt

1
2
3
4
5
6

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

如何查询usdt区块记录_okex里usdt怎么转成usdt_usdt查询网站

原代码可以参考:go sdk test

2.查询指定key的历史交易

usdt查询网站_如何查询usdt区块记录_okex里usdt怎么转成usdt

如果要查询特定链码中指定状态键的历史交易如何查询usdt区块记录,可以使用链码中ChaincodeStubInterface接口的GetHistoryForKey()方法查询其历史记录。 例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

usdt查询网站_okex里usdt怎么转成usdt_如何查询usdt区块记录

historyIter, err := stub.GetHistoryForKey(yourKey)

if err != nil {
fmt.Println(errMsg)
return shim.Error(errMsg)
}

if historyIter.HasNext() {
modification, err := historyIter.Next()
if err != nil {
fmt.Println(errMsg)
return shim.Error(errMsg)
}
fmt.Println("Returning information related to", string(modification.Value))
}

为了使上述链码正常工作,需要在 core.yaml 中将 enableHistoryDatabase 设置为 true:

1
2
3

ledger:
history:
enableHistoryDatabase: true