如何在不向這些網站發出請求的情況下訪問 blockexplorer.com 或 blockchain.info 上的資訊?
假設我想
- 獲取我不擁有的地址的餘額,或
- 查看最近進行的所有交易
比特幣區塊瀏覽器有這個資訊,但我不想使用它
- 因為安全(他們可能會撒謊)
- 因為隱私(他們可能會記錄查詢)
- 因為它引入了一個額外的故障點
- 因為它不是非常快,是免費服務和所有
我怎樣才能從我的
bitcoind
?
bitcoind
沒有提供查詢的方法,但是通過查看它寫入磁碟的文件,我們可以建構自己的工具來查看它。Abe 就是這樣一種工具,這就是您使用它的方式:安裝 (Ubuntu)
我假設你已經執行了標準的比特幣客戶端。
下載安倍。解壓,執行
python setup.py install
進入
abe.conf
並添加這些行:# SQLite3 example: dbtype = sqlite3 connect-args = abe.sqlite # Specify port and/or host to serve HTTP instead of FastCGI: port 2750 host localhost
關於 firstbits 的說明
如果要進行 firstbits 查找,則需要在配置中再添加一行。
use-firstbits
請注意,您需要在執行 abe之前執行此操作,否則您也需要執行 Abe.reconfigure。
恢復正常安裝
跑步
python -m Abe.abe --config /path/to/abe.conf
您應該會看到螢幕上充斥著垃圾郵件
block_tx 38944 39254 commit
在撰寫本文時,這需要計算到220,000。這花了我大約8個小時。第一次啟動後,它將在大約一秒鐘內載入。
嘗試打開
http://localhost:2750/
。如果它沒有顯示任何數據,則說明有錯誤。abe 命令在說它正在偵聽之前立即產生的輸出應該會給您一些洞察力。現在您的應用程序可以發出 http 請求以了解有關區塊鏈的資訊!有一些文件的連結 (
http://localhost:2750/q
),但您最感興趣的是
getreceivedbyaddress
(http://localhost:2750/chain/Bitcoin/q/getreceivedbyaddress/ADDRESS
)getsentbyaddress
(http://localhost:2750/chain/Bitcoin/q/getsentbyaddress/ADDRESS
)fb
(http://localhost:2750/q/fb/ADDRESS
)
我實際上正在為一個項目自己做這個,就像上面的海報說你可以使用 bitcoind API。
要獲取有關您不擁有的地址的資訊,“getrecievedbyaddress”等命令將不起作用。
您將需要通過區塊鏈工作,這可能需要很長時間,我不建議手動進行。
這是您為了遵循區塊鏈而遵循的命令順序。
- getblockcount - 這將為您提供網路中的總塊數
- 現在使用以下命令開始從一個塊到另一個塊的無限循環 - getblockhash {index} index is block height。例如,當您進行塊計數時,您可能會看到類似 200890 的內容。所以最後一個塊的索引是 200890,因此您將輸入
getblockhash 200890
將返回塊的雜湊數。getblock {hash}
該命令現在為您提供塊內的所有交易。- 現在您將使用以下命令在塊中使用每個事務 ID
getrawtransaction {txid}
這將為您提供每個事務的輸入和輸出的列表。在這裡,您將看到在該交易中接收和發送的地址以及所涉及的金額。現在你基本上會循環這個,直到你建立了整個區塊鏈的數據庫,不幸的是,他們不是一個簡單的方法。我剛剛開始所有這些步驟,所以我可能錯過了一些東西,但總體構想是他們的。
希望您發現該文本塊以某種方式有用=)