Json-Rpc

bitcoin-cli derivedaddresses 總是返回錯誤

  • June 21, 2021

我正在從 bitcoin-cli 幫助中複製並粘貼範例:

deriveaddresses "wpkh([d34db33f/84h/0h/0h] xpub6EuEBhzm7KD3yxmt9wFHisymSNmK8w2CFmfgUgXi74ChFa79YouJ1w3hpZmFAWiuLezZqD38fY6K8PkxUfPifzSEB35skuBBNf1efmSp12K/0/*)#trd0mf0l" "[0,2]"

並複製到有效的 xpub 中。

但是我總是得到一個錯誤:

Invalid descriptor (code -5)

即使我從這裡的比特幣 github 頁面中複製了確切的 bitcoin-cli 呼叫,也可以派生地址拉取請求

deriveaddresses "wpkh([d34db33f/84h/0h/0h]xpub6DJ2dNUysrn5Vt36jH2KLBT2i1auw1tTSSomg8PhqNiUtx8QX2SvC9nrHu81fT41fvDUnhMjEzQgXnQjKEu3oaqMSzhSrHMxyyoEAmUHQbY/0/0)"

我仍然得到同樣的錯誤。

我直接在控制台中輸入命令。我究竟做錯了什麼?

我使用主網比特幣核心 0.18.0,mac OS 10.13.6

你做錯了很多事情。

首先,在您的第一個描述符中,原始資訊(方括號中的內容)和 xpub 之間有一個雜項空間。其次,這個描述符也是無效的,因為你沒有計算出正確的校驗和。校驗和是出現在#描述符末尾的井號 ( ) 之後的內容。您那裡的校驗和是幫助文本中僅對該描述符有效的校驗和。

為了使您的描述符有效,您需要刪除空格並重新計算校驗和。刪除校驗和,包括井號分隔符,並將非校驗和描述符傳遞到getdescriptorinfo. 這將為您提供具有正確校驗和的描述符。請注意,它會將h原始資訊中的 s更改為'可能需要轉義的單引號 ( )。

此外,因為您正在更改描述符中的 xpub,所以描述符中的來源資訊不正確(儘管 Bitcoin Core 不知道這一點)。您應該更改原始資訊以匹配您的 xpub,或將其完全刪除。

您嘗試的第二個描述符不起作用的原因是它沒有校驗和。PR forderiveaddress是在描述符有校驗和之前編寫的。引入校驗和時,RPC 已更新和更改。

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