Bitcoin-Core

如何快速獲取任意比特幣地址的餘額?(沒有第三方 API)

  • December 27, 2021

正如一些人提到的(例如這裡),在比特幣核心中獲得地址餘額的唯一方法是將其導入為僅限手錶的地址並重新掃描區塊鏈。從 bitcoin core v0.17 開始,我們可以使用scantxoutset命令,但是這很慢:

> time bitcoin-cli scantxoutset "start" "[\"addr(17Pu3CEx34YX8bpGATq45PfL2fGBCPcr2u)\"]"
{
 "success": true,
 "searched_items": 64162818,
 "unspents": [
   {
     "txid": "9796cee98fa88efcb9fdb954188d276b73d6e76719af6b5470ad23a2f744ecca",
     "vout": 1,
     "scriptPubKey": "76a91446255848182640edff4d178f365d7824513bc28d88ac",
     "desc": "addr(17Pu3CEx34YX8bpGATq45PfL2fGBCPcr2u)#x2q6xgrk",
     "amount": 0.02155141,
     "height": 607852
   }
 ],
 "total_amount": 0.02155141
}

real    0m42.419s
user    0m0.007s
sys 0m0.003s 

42 秒很慢,我想得到與區塊瀏覽器相當的東西(不到 2 秒)。是否有可能通過一些先進的比特幣核心配置獲得更快的結果?

或者,有沒有我可以用來索引按地址設置的 UTXO 的開源項目?不確定 libbitcoin、bitcoinj、bitcoinJS 等是否能夠更快地做到這一點。我正在尋找一些工具塊瀏覽器可能用來提供此服務的東西。

沒有辦法比scantxoutset在 bitcoind 中更快地查詢任意地址。

資源管理器通過維護一個包含所有地址和交易的單獨數據庫來提供此功能,該數據庫針對此類查詢進行了優化。另一方面,Bitcoin Core 針對與共識相關的查詢進行了優化,這些查詢主要是對給定交易輸入的雜湊集查找。

您可以嘗試執行諸如支持電子錢包的 ElectrumX 或支持Bitpay 的許多錢包和瀏覽器服務的Bitcore之類的東西。

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