Blockexplorer

如何在不向這些網站發出請求的情況下訪問 blockexplorer.com 或 blockchain.info 上的資訊?

  • November 17, 2015

假設我想

  • 獲取我不擁有的地址的餘額,或
  • 查看最近進行的所有交易

比特幣區塊瀏覽器有這個資訊,但我不想使用它

  • 因為安全(他們可能會撒謊)
  • 因為隱私(他們可能會記錄查詢)
  • 因為它引入了一個額外的故障點
  • 因為它不是非常快,是免費服務和所有

我怎樣才能從我的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”等命令將不起作用。

您將需要通過區塊鏈工作,這可能需要很長時間,我不建議手動進行。

這是您為了遵循區塊鏈而遵循的命令順序。

  1. getblockcount - 這將為您提供網路中的總塊數
  2. 現在使用以下命令開始從一個塊到另一個塊的無限循環 - getblockhash {index} index is block height。例如,當您進行塊計數時,您可能會看到類似 200890 的內容。所以最後一個塊的索引是 200890,因此您將輸入getblockhash 200890將返回塊的雜湊數。
  3. getblock {hash}該命令現在為您提供塊內的所有交易。
  4. 現在您將使用以下命令在塊中使用每個事務 IDgetrawtransaction {txid}這將為您提供每個事務的輸入和輸出的列表。在這裡,您將看到在該交易中接收和發送的地址以及所涉及的金額。

現在你基本上會循環這個,直到你建立了整個區塊鏈的數據庫,不幸的是,他們不是一個簡單的方法。我剛剛開始所有這些步驟,所以我可能錯過了一些東西,但總體構想是他們的。

希望您發現該文本塊以某種方式有用=)

引用自:https://bitcoin.stackexchange.com/questions/5518