Bitcoin-Core

如何在比特幣核心中使用僅限手錶的錢包?

  • August 3, 2022

我正在使用比特幣核心 v23.0。

它似乎通過disable_private_keys=true在錢包創建期間設置來支持僅限手錶的錢包。

$ bitcoin-cli -regtest createwallet "test" true
{
 "name": "test",
 "warning": ""
}

但是當我嘗試將地址導入其中時,命令失敗

$ bitcoin-cli -regtest -rpcwallet=test importaddress "bcrt1qpsw3ts4v3srzxqk7f797sxhn22xhwcc3cdq0xe"
error code: -4
error message:
This type of wallet does not support this command

importpubkey命令也失敗了

$ bitcoin-cli -regtest -rpcwallet=test importpubkey "035310a2af27b41544204c544b6df18a3a7cc217498d740fb9d1212c3af9fd8010"
error code: -4
error message:
This type of wallet does not support this command

那麼如何向比特幣核心添加一個僅限觀看的地址呢?

是否可以使用僅限手錶的錢包獲取 HD 地址?(我知道這是可能的,因為 Coinkite 可以做到)

如果您使用的是 Bitcoin Core 23.0,並使用它創建了一個新錢包,則預設情況下它是一個描述符 wallet。這些是新一代的錢包,它使用輸出描述符來確定哪些密鑰/腳本/地址“屬於”錢包,而不是使用定義不太明確的過程來確定這一點的傳統錢包。

描述符錢包禁用了幾個 RPC,例如importaddressimportpubkeyimportmulti,原因很簡單,它們對傳統錢包的行為不能完全複製到描述符錢包中。這是一件好事 - 推斷這種行為是什麼非常複雜。

如果您想將某些內容導入描述符錢包,則需要importdescriptorsRPC。此單個 RPC 通過使用輸出描述符語言指定要導入的內容,將所有舊版導入命令的功能包含在單個 RPC 中。這包括導入單個地址(使用addr([ADDR])描述符)或 HD 密鑰派生腳本範圍的能力(例如wpkh([XPUB]/0/1/2/*),將導入從 xpub 派生的所有 P2WPKH 地址[XPUB],具有派生路徑m/0/1/2/0, m/0/1/2/1, m/0/1/2/2, …)。

developer.bitcoin.org上的文件似乎已經過時。Bitcoin Core 23.0 RPC 文件(可通過helpRPC 命令訪問)確實說:

注意:此命令僅與舊版錢包兼容。對描述符錢包使用“importdescriptors”和“addr(X)”。

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