Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

`compile --type=sh` produces a descriptor Bitcoin Core rejects

未关闭
#313 2 条评论 0 个 reaction 已指派 1 人 在 GitHub 查看

@vadim-anfv 已经在做这个了。

开始于 2026年8月7日。

评估

这个 Issue 还没有评估数据。

描述

discussion

bdk-cli compile accepts --type values sh, wsh, sh-wsh and tr. Only sh produces a descriptor Bitcoin Core rejects:

$ A=$(bdk-cli --network bitcoin key generate | jq -r .xprv)
$ B=$(bdk-cli --network bitcoin key generate | jq -r .xprv)

$ D=$(bdk-cli compile "or(pk($A),pk($B))" --type=sh | jq -r .descriptor)

$ bitcoin-cli getdescriptorinfo "$D"
error code: -5
error message:
Miniscript expressions can only be used in wsh or tr.

The same policy with --type=wsh, --type=sh-wsh and --type=tr is accepted.

BIP 379 scopes Miniscript to P2WSH and Tapscript, and excludes P2SH explicitly, spec:

These specifications apply to P2WSH (BIP 141) and Tapscript (BIP 342) scripts [...] P2SH and bare scripts are excluded from this specification.

Core enforces that where it parses the Miniscript expression, src:

if (node) {
    if (ctx != ParseScriptContext::P2WSH && ctx != ParseScriptContext::P2TR) {
        error = "Miniscript expressions can only be used in wsh or tr.";
        return {};
    }

bdk-cli can still build the descriptor because rust-miniscript keeps the pre-BIP contexts. BDK also handles it end to end: wallet config --ext-descriptor "$D" followed by new_address derives a P2SH address, and the script itself is consensus-valid. Other descriptor-based wallets may not support this type though - Core rejects it outright, in both getdescriptorinfo and importdescriptors.

@tvpeter how would you like this handled?

  1. drop sh from the accepted --type values
  2. keep it, but warn on output and document that it is outside BIP 379 specification

Happy to open the PR once you have picked one.

主要语言
Rust
星标
142
派生
99
平均合并
8 天 1 小时
30 天内合并 PR
1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

bitcoindevkit/bdk-cli 的其他 Issue

查看 bitcoindevkit/bdk-cli 的全部 Issue

相似的 Issue

更多 Rust Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。