[32.x] More Backports #36300

pull fanquake wants to merge 24 commits into bitcoin:32.x from fanquake:more_32_0_backports changing 43 files +424 −144
  1. fanquake commented at 3:53 PM on September 19, 2026: member
  2. rpc: Correct OpenRPC default metadata
    Correct six argument metadata entries that produce misleading or invalid
    OpenRPC defaults.
    
    The getdeploymentinfo blockhash fallback and four sighashtype fallbacks
    describe how omitted arguments are resolved. They are not literal values
    accepted by the RPCs, so mark them as DefaultHint values.
    
    The send include_watching option is boolean, but its string default makes
    the generated schema internally inconsistent. Use a boolean value,
    matching the analogous sendall option.
    
    Runtime behavior is unchanged.
    
    Github-Pull: #36297
    Rebased-From: b7f740c594ba1482344a7906b799fb62c533464f
    7a0964a252
  3. fanquake added this to the milestone 32.0 on Sep 19, 2026
  4. DrahtBot added the label Backport on Sep 19, 2026
  5. DrahtBot commented at 3:53 PM on September 19, 2026: contributor

    <!--e57a25ab6845829454e8d69fc972939a-->

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    <!--006a51241073e994b41acfe9ec718e94-->

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/36300.

    <!--021abf342d371248e50ceaed478a90ca-->

    Reviews

    See the guideline and AI policy for information on the review process.

    Type Reviewers
    ACK marcofleon, willcl-ark
    Approach ACK ismaelsadeeq

    If your review is incorrectly listed, please copy-paste <code>&lt;!--meta-tag:bot-skip--&gt;</code> into the comment that the bot should ignore.

    <!--5faf32d7da4f0f540f40219e4f7537a3-->

    LLM Linter (✨ experimental)

    Possible places where named args for integral literals may be used (e.g. func(x, /*named_arg=*/0) in C++, and func(x, named_arg=0) in Python):

    • Parse(descriptor_str, keys, error, true) in src/wallet/walletutil.cpp

    Possible places where comparison-specific test macros should replace generic comparisons:

    • [test/functional/interface_http.py] assert count < num_req, f"Server handled the whole batch of {num_req}: nothing was throttled" -> use assert_greater_than(num_req, count) for the comparison instead.

    <sup>2026-10-01 15:57:12</sup>

  6. wallet: Remove WalletDescriptor's default constructor
    Drop the default constructor and add a factory function to construct a
    WalletDescriptor from stream
    
    Github-Pull: #36230
    Rebased-From: 4cc00f7bc04b4c07827728ba5ce1094b338a76a8
    98b9a497e0
  7. wallet: Make WalletDescriptor's descriptor const
    Github-Pull: #36230
    Rebased-From: bb5e8320d76f5175fdf86bdc4c2d24bfc1eed438
    655148d0ac
  8. wallet: Compare descriptors by hash of canonical string
    The canonical string comparison was slow because it would compute the
    canonical string for each comparison. This can be sped up by holding the
    canonical string in memory, computed upon construction of
    WalletDescriptor. To reduce memory usage, this string is further hashed
    so that the comparison operates over the hash of the canonical string.
    
    Github-Pull: #36230
    Rebased-From: 64abb3e8d3610449d541bfff2db23b9ace3fa111
    7fdb8584da
  9. descriptor: Explicitly handle use_apostrophe cases
    Github-Pull: #36230
    Rebased-From: 405b1d6055e78866fe2d86ba6fb16534f9554a32
    81e580401d
  10. descriptor, doc: Clarify miniscript CompatDescriptorHash
    The hardened indicator for Minscript expressions in
    CompatDescriptorHash uses whichever hardened indicator was originally
    given by the user.
    
    Github-Pull: #36230
    Rebased-From: f0f6dce849634e801ac81705176ca8b96abbaa09
    d17455aae8
  11. wallet: Document WalletDescriptor::UpdateFrom
    Github-Pull: #36230
    Rebased-From: f6cbcfd98a000deb17521520074ba46965c410b1
    e6c57c0982
  12. test: Simplify miniscript descriptor check in wallet back compat
    Github-Pull: #36230
    Rebased-From: ebf2f69ee81925057cdcc881e42e861dbdf39ae5
    c46dacf923
  13. test: Add 31.1 to wallet back compat
    Github-Pull: #36230
    Rebased-From: 61edcf92532502e91c2e17b8c2a23b45f5773936
    21a947002e
  14. DrahtBot added the label CI failed on Sep 19, 2026
  15. DrahtBot removed the label CI failed on Sep 19, 2026
  16. doc: scope claims about private broadcast feature
    Reframe in terms of risk reduction rather than absolutes
    
    Github-Pull: #36309
    Rebased-From: 2630d8e6c9d60579372c019e4b2cc7e73163a5d8
    bfc87b96ef
  17. private broadcast: mark feature as experimental
    Github-Pull: #36309
    Rebased-From: f41372998377ab8310476f0c03294e69cc3222e8
    fa11293ddc
  18. ci: raise BuildKit step log limit
    The Windows cross-toolchain build can exceed BuildKit's default 2 MiB
    per-step log limit, which hides useful output.
    
    Raise the limit to 5 MiB for both CI builder configurations. This
    retains substantially more diagnostics without enabling unlimited logs.
    
    Github-Pull: #36316
    Rebased-From: 96d487c11e8ff55f5df3975272916a6d13c70162
    c65060e6d3
  19. ci: use POSIX threads in Nix Windows cross shell
    Guix release binaries use the POSIX GCC thread model, but the pinned
    Nixpkgs cross compiler defaults to MCF. Select POSIX through the
    Nixpkgs threads hook so GCC and its target libraries agree.
    
    Leave threads.package null because making winpthreads a target
    dependency exposes its headers to native GCC build tools. Supply its
    headers and libraries through EXTRA_*_FOR_TARGET for target libraries
    instead.
    
    Add winpthreads to the compiler wrapper so builds in the shell get
    its include and library paths without manual NIX_CFLAGS_COMPILE or
    NIX_LDFLAGS exports.
    
    Github-Pull: #36316
    Rebased-From: 1d59d5ad2550b2ff6aaea2a630d1c6afa877ea2b
    6854ead11c
  20. ci: print Windows cross compiler thread model
    BuildKit can truncate the compiler build log, hiding its configure
    flags. Print the compiler version and thread model when CI enters the
    Nix test shell so a mismatch is visible in the job output.
    
    Github-Pull: #36316
    Rebased-From: 9fd18aedb088b5ca6a7c424aab2a4a1ec3ef4eeb
    d06f51300e
  21. net: don't discourage private broadcast peers
    Keep private broadcast connections outside normal discouragement handling.
    Misbehaving private broadcast peers are still disconnected.
    
    Github-Pull: #36312
    Rebased-From: eab6630addc385d013db5fe6779679228e445d09
    8ec0fd46f4
  22. test: Fixup MAX_BODY_SIZE http throttling test
    Github-Pull: #36324
    Rebased-From: fa2c62036b1d1a1f5858e7ea96cbc719503a942d
    782ca5a16f
  23. test: characterize fee callback loss at shutdown
    Shutdown saves and unregisters the fee estimator before draining queued validation callbacks, so a pending block update can be missing from the saved estimates.
    The mempool estimator also ignores its saved file on restart when the saved tip no longer matches the active tip.
    
    Queue a block update after the scheduler stops and check that the block-policy height in the saved estimates does not reflect it.
    
    Co-authored-by: Rob Hamilton <6456095+Rob1Ham@users.noreply.github.com>
    
    Github-Pull: #36322
    Rebased-From: 08729e6ef9c9c5ec75834633a39f51f768d789c7
    651670dec1
  24. init: drain callbacks before saving fee estimates
    Save and unregister the fee estimator after the existing callback drain so queued block updates are reflected in the saved estimates.
    
    The estimator comment now says its shutdown actions follow the callback drain.
    The old paragraph below the indexes claimed the drain only let wallets catch up, although wallets are already unloaded.
    The new comment beside the final chainstate flush keeps the accurate point that callbacks queued there can be dropped.
    
    Github-Pull: #36322
    Rebased-From: 8c27c38526419de2eaca1d4857df2172ad1da1ab
    8b93cadccc
  25. DrahtBot added the label CI failed on Sep 25, 2026
  26. DrahtBot removed the label CI failed on Sep 25, 2026
  27. hebasto commented at 12:18 PM on September 28, 2026: member

    Can we have #36233 here?

  28. tools: Call SHA256AutoDetect in bitcoin-util, bitcoin-tx and bitcoin-wallet
    Only kernel::Context users selected a hardware SHA256 implementation,
    so these tools fell back to the generic one. On an M2 Max, grind is
    ~5x faster and signing 2000 P2PKH inputs with bitcoin-tx ~2.3x.
    
    Github-Pull: #36364
    Rebased-From: 4048909a53422bf86b207a9b5c8650e8edd25737
    02a7f11038
  29. ismaelsadeeq commented at 6:37 AM on September 30, 2026: member

    Approach ACK, please include #36365 and #36336.

  30. doc: add 461 (Deterministic ECDSA signatures with low-R grinding) to bips.md
    Github-Pull: #36377
    Rebased-From: d57346d682f17e6cf09f8acc5e7893ee16eec193
    26f3c91025
  31. log: move CreateNewBlock() log line behind a new mining category
    Github-Pull: #36336
    Rebased-From: 54b8795121d3081019befd8a2bc70adcd06fcb65
    18765f6734
  32. fanquake referenced this in commit 5cf7f5ed46 on Sep 30, 2026
  33. fanquake referenced this in commit 635745539f on Sep 30, 2026
  34. fanquake referenced this in commit 7f0ffc9b10 on Sep 30, 2026
  35. DrahtBot added the label CI failed on Sep 30, 2026
  36. DrahtBot removed the label CI failed on Sep 30, 2026
  37. willcl-ark commented at 12:23 PM on September 30, 2026: member

    ACK 7f0ffc9b10cfd855ab8f6fcd0fe29e555336b459

    All nice clean backports, all appear functionally correct too.

    Many missing release notes, but IIUC this is fine here as we are going to update the wiki directly (should remember to do this though!)

  38. DrahtBot requested review from ismaelsadeeq on Sep 30, 2026
  39. fametrano referenced this in commit f0eaefcd8a on Sep 30, 2026
  40. fametrano referenced this in commit 10f299afd2 on Sep 30, 2026
  41. fametrano referenced this in commit 4e6d832a25 on Sep 30, 2026
  42. fametrano referenced this in commit 213193b6bd on Sep 30, 2026
  43. fanquake marked this as ready for review on Oct 1, 2026
  44. fanquake requested review from stickies-v on Oct 1, 2026
  45. fanquake requested review from marcofleon on Oct 1, 2026
  46. fees: rename the default fee_rate_estimator value to "auto"
    "none" read as though fee estimation was disabled, so rename the public
    value (and the FeeRateEstimatorType::NONE enumerator) to "auto", which
    describes what it does.
    
    Also reject unknown fee_rate_estimator values instead of silently
    coercing them to the default, so a mistyped value surfaces an error. The
    previous "none" spelling was never released, so it is rejected too.
    
    Co-authored-by: w0xlt <94266259+w0xlt@users.noreply.github.com>
    
    Github-Pull: #36365
    Rebased-From: 4056908f0feae2a1caf9b53cfbe77bb8091246c9
    d7de90cc1e
  47. fees: fall back to block_policy when the mempool estimator can't estimate
    When the mempool policy estimator cannot produce an estimate, GetFeeRateEstimate()
    now returns the block policy estimate rather than an error. The combined estimate
    starts from the block policy estimate and lowers it with the mempool estimate only
    when present, so the fallback path shares the log that reports the selected fee
    rate. An error is returned only when the block policy estimate itself is unavailable.
    
    Github-Pull: #36365
    Rebased-From: c0b7ca3dbdbaecdd045c8a36d9758470358880a0
    162c3b2187
  48. fees: clear mined-block stats when the mempool load fails
    When the mempool fails to load at startup (persistence disabled, or a
    missing or corrupt mempool.dat), init notifies the fee_rate_estimator_man,
    which clears its tracked mined-block window. Otherwise the estimator
    would keep a window describing a mempool the node no longer has and,
    once the mempool refilled, serve an estimate built on it.
    
    Clearing makes the estimator report insufficient data until the window refills from the
    current tip, so the combined estimate falls back to the block policy
    estimate meanwhile.
    
    Github-Pull: #36365
    Rebased-From: 5b77288673e2b74de1512180a8911f435311ca7a
    532b496bc1
  49. fanquake force-pushed on Oct 1, 2026
  50. marcofleon approved
  51. marcofleon commented at 3:59 PM on October 1, 2026: contributor

    ACK 532b496bc1194f36d28e333ab4eb2b7b8dbdaf59

    Backports are clean.

  52. DrahtBot requested review from willcl-ark on Oct 1, 2026
  53. willcl-ark approved
  54. willcl-ark commented at 4:04 PM on October 1, 2026: member

    ACK 532b496bc11

    metadata update in git range-diff 7f0ffc9b10c...532b496bc11 only

  55. fanquake merged this on Oct 1, 2026
  56. fanquake closed this on Oct 1, 2026


github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-10-11 09:51 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me