如何從 bitcoin-cli + local db 獲取公共地址資訊?(可以不創建錢包就完成嗎?)
我剛剛開始執行我自己的完整節點。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 中不存在此類功能,因為它提供的功能(完整塊驗證、錢包功能……)是不必要的。
如果沒有,是否有其他方法(不創建錢包)?
也許您對
scantxoutset
RPC 感興趣。你給它一個描述符(它可以包含一個地址,但也可以包含 xpubs,…),它將掃描分配給這些的目前未使用的事務輸出集。但是請注意,這不使用任何索引,因此查詢速度相當慢(幾分鐘)。如果您希望能夠更快地查詢事物,則存在各種索引軟體包。