Output-Script-Descriptors

使用 importmulti 獲取新地址

  • December 16, 2020

我有一個關於比特幣核心錢包如何使用描述符的問題。

我正在使用該createwallet方法創建一個錢包並傳入一個名稱(所有其他參數都是預設值)。

然後我使用importmultiwsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum

當我執行deriveaddresses時,wsh(sortedmulti(2,[abc123ef/48h/0h/0h/2h]xpubyadayada.../0/*, [abc345ef/48h/0h/0h/2h]xpubyadaya1da.../0/*, [abc567ef/48h/0h/0h/2h]xpubyadaya2da.../0/*))#checksum我得到了預期的地址作為輸出,但是當我在執行getnewaddress後執行命令時importmulti,我得到一個地址,但沒有任何從deriveaddresses.

然後我注意到創建錢包時有一個disable_private_keys選項,所以我使用該標誌設置了一個新錢包。

我在導入 multi 時再次完成設置過程,keypool=true但是當我執行時getnewaddress我得到"Error: This wallet has no available keys". importmulti 呼叫返回,當我嘗試執行該命令兩次時success: true,我進入了我的日誌。Already have script 522103b403e66...

getnewaddress不適用於描述符?還是我設置的錢包不正確?我看到blank創建錢包時有一個參數要傳入,但是當我嘗試並導入時,我也得到Error: This wallet has no available keys了。

我希望getnewaddress輸出從新deriveaddresses錢包返回的第一個地址。我是否忽略了文件中的某些內容?

我也查看了這些文件,我想我已經完全遵循了它們: https ://gist.github.com/achow101/a9cf757d45df56753fae9d65db4d6e1d

使用內部設置為 true 的 importmulti 不會添加任何更改鍵。我究竟做錯了什麼?

使用“importmulti”+描述符將多重簽名更改地址導入比特幣核心

創建帶有空白密鑰池的錢包然後向其中添加密鑰的最佳方法是什麼?

謝謝!

getnewaddress在非描述符錢包上不適用於非單鍵的東西。廣告描述符錢包尚未發布,您沒有使用描述符錢包。當您使用importmulti導入描述符時,它實際上並不導入描述符。相反,它使用描述符來構造一堆密鑰和腳本並將它們導入錢包。然而,這並不意味著這些腳本可以通過getnewaddress. 他們只是在錢包裡被監視。

你沒有做錯任何事,getnewaddress只是對非描述符錢包不起作用。

如果您製作了一個descriptor錢包(使用 0.21.0 候選版本之一,或主分支的建構),那麼getnewaddress它將按您的預期工作。

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