超級賬本Fabric查詢歷史交易的辦法

2021-10-01 07:41:14 字數 1056 閱讀 7875

從以太坊、位元幣等其他區塊鏈進入hyperledger fabric的新手,常常會問:如何查詢hyperledger fabric區塊鏈上的歷史交易?的確,既然區塊鏈或賬本上都有交易記錄了,怎麼找不到乙個簡單的api來查詢歷史交易?

在以太坊、位元幣等區塊鏈平台中,通常都會提供簡單的json rpc api介面,應用程式只需要呼叫這些rpc api,就可以查詢區塊或歷史交易了。hyperledger fabric也有類似的api,但情況略有不同,根據查詢目的區別,可以分為兩種方法。

如果你在尋找像以太坊/位元幣那樣的區塊查詢、交易查詢api,那就應該使用系統鏈碼qscc,該鏈碼提供了如下方法:

呼叫系統鏈碼和呼叫自己的鏈碼沒什麼區別,例如下面是呼叫qscc鏈碼的getchaininfo()方法的go語言測試**:

response, err := chclient.query(

chclient.request)

原始**可參考:go sdk test

如果要查詢特定鏈碼中指定狀態鍵的歷史交易,可以在鏈碼中使用chaincodestubinte***ce介面的gethistoryforkey()方法來查詢其歷史記錄。例如:

historyiter, err := stub.gethistoryforkey(yourkey)

if err != nil

if historyiter.hasnext()

fmt.println("returning information related to", string(modification.value))

}

上面的鏈碼要正常工作,需要在core.yaml中設定enablehistorydatabase配置為true:

ledger:

history:

enablehistorydatabase: true

超級賬本fabric集群

定義fabric集群 1 證書以及通道的初始區塊生成 啟動fabric集群之前,先使用cryptogen和configtxgen來生成必要的身份證書 存放在crypto config目錄 通道初始區塊 存放在config目錄 等檔案。在configtx.yaml檔案定義只包含乙個組織的應用通道,鏈碼...

超級賬本Fabric教程(一) 超級賬本入門

本節分享有關拆超級賬本的概念以及體驗部署過程。會員眾多 包括cisco ibm intel j.p.morgan 荷蘭 銀行 swift 等。擁抱監管和審查。良好的擴充套件性,可插入各種功能模組。成員管理 適合企業級應用 傳統的業務模型很難做到跨機構的交易被乙個互信的機構監督執行。每個交易方都有自己...

超級賬本(介紹)

本系列目錄 超級賬本原始碼 v1.3 解析目錄 區塊鏈是由分布式網路節點維護的乙個不可修改的交易賬本,每個節點都維護乙個副本,賬本中的交易都由共識演算法驗證後打包成區塊的形式,每個區塊中包含前乙個區塊的雜湊值,形成鏈狀。中文英文 公有鏈public blockchain permissionless...