您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關如何查詢Hyper ledger Fabric的歷史交易,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
在以太坊、比特幣等區塊鏈平臺中,通常都會提供簡單的JSON RPC API接口,應用程序只需要調用這些RPC API,就可以查詢區塊或歷史交易了。Hyperledger Fabric也有類似的API,但情況略有不同,根據查詢目的區別,可以分為兩種方法。
如果你在尋找像以太坊/比特幣那樣的區塊查詢、交易查詢API,那就應該使用系統鏈碼QSCC
,該鏈碼提供了如下方法:
GetChainInfo:獲取鏈信息
GetBlockByNumer:按區塊號獲取區塊數據
GetBlockByHash:按區塊哈希獲取區塊數據
GetTransactionById:按交易ID獲取交易數據
GetBlockByTxId:按交易ID獲取區塊數據
調用系統鏈碼和調用自己的鏈碼沒什么區別,例如下面是調用qscc
鏈碼的GetChainInfo()
方法的go語言測試代碼:
response, err := chClient.Query( chclient.Request{ ChaincodeID: "qscc", Fcn: "invoke", Args: integration.ExampleCCQueryArgs("GetChainInfo") })
原始代碼可參考:go sdk test
如果要查詢特定鏈碼中指定狀態鍵的歷史交易,可以在鏈碼中使用ChaincodeStubInterface
接口的GetHistoryForKey()
方法來查詢其歷史記錄。例如:
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
:
ledger: history: enableHistoryDatabase: true
上述就是小編為大家分享的如何查詢Hyper ledger Fabric的歷史交易了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。