1. 程式人生 > >比特幣:如何用地址查詢交易?

比特幣:如何用地址查詢交易?

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

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

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

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

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


原文:如何列出一個比特幣地址的所有交