Address

如何從本地完整節點的數據庫中提取公共地址的所有資訊?

  • January 23, 2022

我最近開始bitcoind在本地 Debian 主機上執行,我還在學習如何使用本地比特幣區塊鏈副本中的資訊。

我想提取本地完整節點1中目前可用的一個或多個公共比特幣地址的所有資訊。 編輯2:我想bash從命令行和以程式方式執行此操作。(IOW:請不要使用基於 GUI 的工具。)

我最近了解到,與我最初的預期相反,比特幣核心不適合執行此類查詢。

因此,我回到了Google,但我找到了空的3。因此,我在這裡發布我的問題。

具體來說,我想知道

  1. 我需要在本地完整節點上安裝什麼軟體(最好是一個或多個 Debian 軟體包的形式),這將使我能夠提取本地完整節點中目前可用的一個或多個公共比特幣地址的所有資訊;
  2. 我究竟將如何使用這個軟體來執行這樣的查詢。

1我想在不參考任何特定錢包的情況下執行此操作。必須添加此要求對我來說感覺非常奇怪(例如必須添加對我的問題的答案應該每週工作 7 天的要求)。這對我來說是一個明顯的跡象,表明我對比特幣的理解仍然存在至少一個非常巨大的差距和/或混亂,因為我不明白為什麼錢包甚至應該與我想做的那種查詢相關。我原以為錢包最多是修改查詢的可選資訊,而不是它的基本輸入。但事實是,我無法找到任何方法來查詢完整節點的數據庫以獲取不需要指定錢包的特定地址。這對我來說簡直令人難以置信。

2我很抱歉沒有在我原來的文章中提到這個關鍵要求。這是我的一個重大疏忽!

3我開始意識到我想在完整節點的數據庫上執行的查詢(並且不參考錢包)實際上是沒人願意做的事情,因此很難找到執行這些操作的工具。再一次,這讓我覺得有點奇怪,並且讓我越來越懷疑我完全錯過了關於比特幣、區塊鏈、完整節點等的要點。

為什麼這很難

比特幣核心主要是一種與網路目前狀態同步並使用自有硬體執行共識規則的工具。除了關於規則在同一頁面上,這要求節點只跟踪分類帳,即未使用的交易輸出 (UTXO) 集。為此,比特幣交易只需要處理一次。

區塊鏈現在超過 330 GiB,有些人實際上選擇執行修剪過的節點(在處理舊的區塊鏈數據以計算 UTXO 集後丟棄它)。保留數十 GiB 大小的附加索引是大多數使用者似乎並不關心的特殊興趣。

事實上,Bitcoin Core 沒有開箱即用的完整地址索引。最初可能是因為地址重用被認為是一種不好的做法,後來因為其他項目提供了這種做法,讓比特幣核心開發人員覺得他們可以專注於其他事情。

無論如何你是怎麼做的

比特幣核心可以選擇建構一個完整的交易索引-txindex(打開它需要你重新開始同步並佔用大約 30 GiB 的空間)。如果您想查找過去的任意交易,則需要此索引。其他項目利用此功能並圍繞它建構額外的索引功能,以提供閃電網路支持或比特幣瀏覽器。我建議您查看Mempool Open Source ProjectEsplora Block Explorer。其中任何一個都將允許您使用 API 執行自己的區塊瀏覽器實例,以根據地址查找區塊鏈數據。請注意,Esplora 索引大約需要 1 TiB 並且顯然需要相當長的時間來建構(H/T @Anonymous)。

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