Bitcoin-Core

如何從 bitcoin-cli + local db 獲取公共地址資訊?(可以不創建錢包就完成嗎?)

  • January 23, 2022

我剛剛開始執行我自己的完整節點。IBD 完成了,我現在正在學習如何使用bitcoin-cli.

首先,我想從下載的區塊鏈中提取一個或多個公共地址的所有可用資訊。

在大多數情況下,我無法找到一種不需要創建錢包的方法。

例如,如果我執行

% bitcoin-cli getaddressinfo 1XPTgDRhN8RFnzniWCddobD9iKZatrvH4

…我收到一條錯誤消息,上面寫著

error code: -18
error message:
No wallet is loaded. Load a wallet using loadwallet or create a new one with createwallet. (Note: A \
default wallet is no longer automatically created)

(順便說一句,只要我在 之後提供一個參數getaddressinfo,無論其值如何,我都會得到相同的錯誤。)

在我看來,在不需要錢包的情況下,轉儲本地區塊鏈目前針對給定地址擁有的所有資訊應該不難。

這可以做到bitcoin-cli嗎?

如果沒有,是否有其他方法(不創建錢包)?


1此語句的唯一部分例外是,如果我有交易 ID,我可以bitcoin-cli gettxout重複使用,並在輸出中查找所需的地址。這不僅非常費力,而且需要一個特定的交易 ID。

getaddressinfo是一個錢包 RPC。它報告特定錢包所擁有的關於它創建的接收地址的資訊。沒有錢包,就沒有資訊。

在我看來,在不需要錢包的情況下,轉儲本地區塊鏈目前針對給定地址擁有的所有資訊應該不難。

Bitcoin Core 中的本地區塊鏈數據庫根本沒有關於地址或它們引用的腳本的資訊。它所擁有的只是原始塊數據和未使用的交易輸出數據庫(僅由創建它們的 txid 和輸出位置索引 - 您可以使用 查詢gettxout)。

當然,仍然可以對鏈進行索引併計算與地址/腳本相關的資訊,就像各種區塊瀏覽器網站所做的那樣。Bitcoin Core 中不存在此類功能,因為它提供的功能(完整塊驗證、錢包功能……)是不必要的。

如果沒有,是否有其他方法(不創建錢包)?

也許您對scantxoutsetRPC 感興趣。你給它一個描述符(它可以包含一個地址,但也可以包含 xpubs,…),它將掃描分配給這些的目前未使用的事務輸出集。但是請注意,這不使用任何索引,因此查詢速度相當慢(幾分鐘)。

如果您希望能夠更快地查詢事物,則存在各種索引軟體包。

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