如何查詢一個比特幣地址的所有交易?

在比特幣應用開發中,一個常見的問題就是,在知道比特幣地址的情況下,如何查詢這個地址上發生的所有交易?或者類似的說法,如何查詢一個指定的比特幣地址發生的所有交易? 本文將給出這一問題的三種解決方案。

1、將比特幣交易數據存入數據庫

由於比特幣的數據存儲結構,不可能直接利用比特幣的原始API來查詢指定地址的歷史交易數據。因此最樸素(Naive)的第一種解決方案,就是將比特幣區塊鏈上的每一筆交易數據存到自己的數據庫裏,然後針對交易地址信息(例如Scriptpubkey、pubkey或者地址本身)建立索引,這樣就可以在數據庫上自由、高效地查詢了。

2、利用第三方的服務

樸素的第一種方案需要自己解析比特幣區塊鏈數據,自己搭建數據庫環境,可能你覺得有點麻煩。好在有很多第三方機構已經做了這件繁瑣的事情,並且通過開放API的形式提供出來,你可以直接使用。

例如,你可以使用blockchain.info的api來實現這個功能:

$ curl https://blockchain.info/rawaddr/$bitcoin_address

3、換一種比特幣節點實現軟件

如果你不願意自己搞數據庫,也不願意使用第三方的開放API,還有第三種解決方案,就是換一種支持按比特幣地址查詢交易的節點實現軟件,例如btcd,這是一個go語言實現的比特幣節點軟件,當你啓動btcd時,只要使用--addrindex標誌就可以自動建立比特幣地址索引了:

$ btcd --addrindex

本文列出的解決用比特幣地址查詢歷史交易的三種解決方案,分別適用於不同的應用場景,你可以根據自己的需要做出相應的選擇。

如果要快速掌握比特幣的對接與應用開發,推薦匯智網的在線互動課程:

Java比特幣開發詳解 -----
Php比特幣開發詳解 -----
C#比特幣開發詳解


匯智網原創,轉載請標明出處

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章