1. 程式人生 > >以太坊go-ethereum客戶端查詢交易列表(二)

以太坊go-ethereum客戶端查詢交易列表(二)

玩過比特幣的朋友都知道,比特幣是可以通過api(listtransactions)查詢指定地址的歷史交易的。但在eth中沒有提供類似的查詢api。今天這篇部落格就簡單介紹一下如果解決這個問題。

問題

以太坊go-ethereum客戶端是沒有根據地址查詢交易列表的API的。然而,在使用過程中我們往往會用到類似的API。針對是否要在客戶端上新增此API,github已經有激勵的討論了。點選一下網址可以瞭解一下:
https://github.com/ethereum/go-ethereum/issues/1897

解決方案

那麼既然有此需求,即使沒有針對性的API也需要找到相應的解決方案。目前有效的解決方案有兩種:
(1)呼叫第三方API介面。此類介面很多,不僅能在官網上查詢區塊資訊,而且提供了查詢的API。比如:

https://etherchain.org/apidoc 。介面都很簡單,不過有訪問頻次的限制,除非很大的訪問量,還是可以使用此類介面。簡單,方便。

(2)自行維護資料,自行實現此功能。此方法的基本思路是,查詢每個區塊的具體交易,錄入到自己的資料庫中,然後通過sql語句查詢自己的資料。此方法就需要有一定的編碼基礎和裝置投入。現有的API是支援查詢每一個區塊內的交易記錄的。雖然比較笨重,但一旦資料由自己維護之後,想怎麼查詢只是sql語句不同的事情了。

例外情況

如果要查詢合約的交易歷史,那麼可以通過過濾(filter)合約日誌來達到此目的。此種場景是有相應的API進行支撐的。