From b7cf2f87d0c550f33397b5d9460eb85953871914 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Fri, 6 Mar 2026 09:48:47 -0800 Subject: [PATCH 1/3] docs: Update bips.md Add 327, 328, 373, and 390 --- doc/bips.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/bips.md b/doc/bips.md index c814717a09f..07e5024864c 100644 --- a/doc/bips.md +++ b/doc/bips.md @@ -51,6 +51,8 @@ BIPs that are implemented by Bitcoin Core: * [`BIP 176`](https://github.com/bitcoin/bips/blob/master/bip-0176.mediawiki): Bits Denomination [QT only] is supported as of **v0.16.0** ([PR 12035](https://github.com/bitcoin/bitcoin/pull/12035)). * [`BIP 324`](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki): The v2 transport protocol specified by BIP324 and the associated `NODE_P2P_V2` service bit are supported as of **v26.0**, but off by default ([PR 28331](https://github.com/bitcoin/bitcoin/pull/28331)). On by default as of **v27.0** ([PR 29347](https://github.com/bitcoin/bitcoin/pull/29347)). * [`BIP 325`](https://github.com/bitcoin/bips/blob/master/bip-0325.mediawiki): Signet test network is supported as of **v0.21.0** ([PR 18267](https://github.com/bitcoin/bitcoin/pull/18267)). +* [`BIP 327`](https://github.com/bitcoin/bips/blob/master/bip-0327.mediawiki): Key aggregation via `musig()` descriptors is supported as of **v30.0** ([PR 31244](https://github.com/bitcoin/bitcoin/pull/31244)). Signing is supported as of **v31.0** ([PR 29675](https://github.com/bitcoin/bitcoin/pull/29675)) +* [`BIP 328`](https://github.com/bitcoin/bips/blob/master/bip-0328.mediawiki): MuSig2 derivation via `musig()` descriptors is supported as of **v30.0** ([PR 31244](https://github.com/bitcoin/bitcoin/pull/31244)) * [`BIP 339`](https://github.com/bitcoin/bips/blob/master/bip-0339.mediawiki): Relay of transactions by wtxid is supported as of **v0.21.0** ([PR 18044](https://github.com/bitcoin/bitcoin/pull/18044)). * [`BIP 340`](https://github.com/bitcoin/bips/blob/master/bip-0340.mediawiki) [`341`](https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki) @@ -62,6 +64,7 @@ BIPs that are implemented by Bitcoin Core: always active as of **v24.0** ([PR 23536](https://github.com/bitcoin/bitcoin/pull/23536)). * [`BIP 350`](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki): Addresses for native v1+ segregated Witness outputs use Bech32m instead of Bech32 as of **v22.0** ([PR 20861](https://github.com/bitcoin/bitcoin/pull/20861)). * [`BIP 371`](https://github.com/bitcoin/bips/blob/master/bip-0371.mediawiki): Taproot fields for PSBT as of **v24.0** ([PR 22558](https://github.com/bitcoin/bitcoin/pull/22558)). +* [`BIP 373`](https://github.com/bitcoin/bips/blob/master/bip-0373.mediawiki): MuSig2 fields for PSBT as of **v30.0** ([PR 31247](https://github.com/bitcoin/bitcoin/pull/31247)) * [`BIP 379`](https://github.com/bitcoin/bips/blob/master/bip-0379.md): Miniscript was partially implemented in **v24.0** ([PR 24148](https://github.com/bitcoin/bitcoin/pull/24148)), and fully implemented as of **v26.0** ([PR 27255](https://github.com/bitcoin/bitcoin/pull/27255)). * [`BIP 380`](https://github.com/bitcoin/bips/blob/master/bip-0380.mediawiki) [`381`](https://github.com/bitcoin/bips/blob/master/bip-0381.mediawiki) @@ -72,5 +75,6 @@ BIPs that are implemented by Bitcoin Core: Output Script Descriptors, and most of Script Expressions are implemented as of **v0.17.0** ([PR 13697](https://github.com/bitcoin/bitcoin/pull/13697)). * [`BIP 386`](https://github.com/bitcoin/bips/blob/master/bip-0386.mediawiki): tr() Output Script Descriptors are implemented as of **v22.0** ([PR 22051](https://github.com/bitcoin/bitcoin/pull/22051)). * [`BIP 387`](https://github.com/bitcoin/bips/blob/master/bip-0387.mediawiki): Tapscript Multisig Output Script Descriptors are implemented as of **v24.0** ([PR 24043](https://github.com/bitcoin/bitcoin/pull/24043)). +* [`BIP 390`](https://github.com/bitcoin/bips/blob/master/bip-0390.mediawiki): MuSig2 Descriptor parsing is implemented in **v30.0** ([PR 31244](https://github.com/bitcoin/bitcoin/pull/31244)) and signing in **v31.0** ([PR 29675](https://github.com/bitcoin/bitcoin/pull/29675)) * [`BIP 431`](https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki): transactions with nVersion=3 are standard and treated as Topologically Restricted Until Confirmation as of **v28.0** ([PR 29496](https://github.com/bitcoin/bitcoin/pull/29496)). * [`BIP 433`](https://github.com/bitcoin/bips/blob/master/bip-0433.mediawiki): Spending of Pay to Anchor (P2A) outputs is standard as of **v28.0** ([PR 30352](https://github.com/bitcoin/bitcoin/pull/30352)). From 1b3d58f128a5b917b9b33d255e2cd77a3f6188cf Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Fri, 6 Mar 2026 09:49:49 -0800 Subject: [PATCH 2/3] docs Remove 31.0 release notes fragments --- doc/release-notes-24539.md | 14 ----------- doc/release-notes-29415.md | 19 -------------- doc/release-notes-32138.md | 3 --- doc/release-notes-33199.md | 9 ------- doc/release-notes-33555.md | 5 ---- doc/release-notes-33629.md | 51 -------------------------------------- doc/release-notes-33657.md | 5 ---- doc/release-notes-33770.md | 4 --- doc/release-notes-33842.md | 4 --- doc/release-notes-33872.md | 5 ---- doc/release-notes-33892.md | 8 ------ doc/release-notes-34031.md | 4 --- doc/release-notes-34088.md | 2 -- doc/release-notes-34184.md | 8 ------ doc/release-notes-34197.md | 7 ------ doc/release-notes-34512.md | 8 ------ doc/release-notes-34568.md | 11 -------- doc/release-notes-34692.md | 6 ----- 18 files changed, 173 deletions(-) delete mode 100644 doc/release-notes-24539.md delete mode 100644 doc/release-notes-29415.md delete mode 100644 doc/release-notes-32138.md delete mode 100644 doc/release-notes-33199.md delete mode 100644 doc/release-notes-33555.md delete mode 100644 doc/release-notes-33629.md delete mode 100644 doc/release-notes-33657.md delete mode 100644 doc/release-notes-33770.md delete mode 100644 doc/release-notes-33842.md delete mode 100644 doc/release-notes-33872.md delete mode 100644 doc/release-notes-33892.md delete mode 100644 doc/release-notes-34031.md delete mode 100644 doc/release-notes-34088.md delete mode 100644 doc/release-notes-34184.md delete mode 100644 doc/release-notes-34197.md delete mode 100644 doc/release-notes-34512.md delete mode 100644 doc/release-notes-34568.md delete mode 100644 doc/release-notes-34692.md diff --git a/doc/release-notes-24539.md b/doc/release-notes-24539.md deleted file mode 100644 index 63b4d70eafd..00000000000 --- a/doc/release-notes-24539.md +++ /dev/null @@ -1,14 +0,0 @@ -New settings ------------- -- `-txospenderindex` enables the creation of a transaction output spender - index that, if present, will be scanned by `gettxspendingprevout` if a - spending transaction was not found in the mempool. - (#24539) - -Updated RPCs ------------- -- `gettxspendingprevout` has 2 new optional arguments: `mempool_only` and `return_spending_tx`. - If `mempool_only` is true it will limit scans to the mempool even if `txospenderindex` is available. - If `return_spending_tx` is true, the full spending tx will be returned. - In addition if `txospenderindex` is available and a confirmed spending transaction is found, - its block hash will be returned. (#24539) diff --git a/doc/release-notes-29415.md b/doc/release-notes-29415.md deleted file mode 100644 index c0e0f3dc888..00000000000 --- a/doc/release-notes-29415.md +++ /dev/null @@ -1,19 +0,0 @@ -P2P and network changes ------------------------ - -- Normally local transactions are broadcast to all connected peers with - which we do transaction relay. Now, for the `sendrawtransaction` RPC - this behavior can be changed to only do the broadcast via the Tor or - I2P networks. A new boolean option `-privatebroadcast` has been added - to enable this behavior. This improves the privacy of the transaction - originator in two aspects: - 1. Their IP address (and thus geolocation) is never known to the - recipients. - 2. If the originator sends two otherwise unrelated transactions, they - will not be linkable. This is because a separate connection is used - for broadcasting each transaction. (#29415) - -- New RPCs have been added to introspect and control private broadcast: - `getprivatebroadcastinfo` reports transactions currently being privately - broadcast, and `abortprivatebroadcast` removes matching - transactions from the private broadcast queue. diff --git a/doc/release-notes-32138.md b/doc/release-notes-32138.md deleted file mode 100644 index 56699850880..00000000000 --- a/doc/release-notes-32138.md +++ /dev/null @@ -1,3 +0,0 @@ -RPC and Startup Option ---- -The `-paytxfee` startup option and the `settxfee` RPC are now deleted after being deprecated in Bitcoin Core 30.0. They used to allow the user to set a static fee rate for wallet transactions, which could potentially lead to overpaying or underpaying. Users should instead rely on fee estimation or specify a fee rate per transaction using the `fee_rate` argument in RPCs such as `fundrawtransaction`, `sendtoaddress`, `send`, `sendall`, and `sendmany`. (#32138) diff --git a/doc/release-notes-33199.md b/doc/release-notes-33199.md deleted file mode 100644 index 90246d78273..00000000000 --- a/doc/release-notes-33199.md +++ /dev/null @@ -1,9 +0,0 @@ -Fee Estimation -======================== - -- The Bitcoin Core fee estimator minimum fee rate bucket was updated from **1 sat/vB** to **0.1 sat/vB**, - which matches the node’s default `minrelayfee`. - This means that for a given confirmation target, if a sub-1 sat/vB fee rate bucket is the minimum tracked - with sufficient data, its average value will be returned as the fee rate estimate. - -- Note: Restarting a node with this change invalidates previously saved estimates in `fee_estimates.dat`, the fee estimator will start tracking fresh stats. diff --git a/doc/release-notes-33555.md b/doc/release-notes-33555.md deleted file mode 100644 index a11af34fdfc..00000000000 --- a/doc/release-notes-33555.md +++ /dev/null @@ -1,5 +0,0 @@ -Build System ------------- - -- The minimum supported Clang compiler version has been raised to 17.0 - (#33555). diff --git a/doc/release-notes-33629.md b/doc/release-notes-33629.md deleted file mode 100644 index 46adf220f5e..00000000000 --- a/doc/release-notes-33629.md +++ /dev/null @@ -1,51 +0,0 @@ -Mempool -======= - -The mempool has been reimplemented with a new design ("cluster mempool"), to -facilitate better decision-making when constructing block templates, evicting -transactions, relaying transactions, and validating replacement transactions -(RBF). Most changes should be transparent to users, but some behavior changes -are noted: - -- The mempool no longer enforces ancestor or descendant size/count limits. - Instead, two new default policy limits are introduced governing connected - components, or clusters, in the mempool, limiting clusters to 64 transactions - and up to 101 kB in virtual size. Transactions are considered to be in the - same cluster if they are connected to each other via any combination of - parent/child relationships in the mempool. These limits can be overridden - using command line arguments; see the extended help (`-help-debug`) - for more information. - -- Within the mempool, transactions are ordered based on the feerate at which - they are expected to be mined, which takes into account the full set, or - "chunk", of transactions that would be included together (e.g., a parent and - its child, or more complicated subsets of transactions). This ordering is - utilized by the algorithms that implement transaction selection for - constructing block templates; eviction from the mempool when it is full; and - transaction relay announcements to peers. - -- The replace-by-fee validation logic has been updated so that transaction - replacements are only accepted if the resulting mempool's feerate diagram is - strictly better than before the replacement. This eliminates all known cases - of replacements occurring that make the mempool worse off, which was possible - under previous RBF rules. For singleton transactions (that are in clusters by - themselves) it's sufficient for a replacement to have a higher fee and - feerate than the original. See - [delvingbitcoin.org post](https://delvingbitcoin.org/t/an-overview-of-the-cluster-mempool-proposal/393#rbf-can-now-be-made-incentive-compatible-for-miners-11) - for more information. - -- Two new RPCs have been added: `getmempoolcluster` will provide the set of - transactions in the same cluster as the given transaction, along with the - ordering of those transactions and grouping into chunks; and - `getmempoolfeeratediagram` will return the feerate diagram of the entire - mempool. - -- Chunk size and chunk fees are now also included in the output of `getmempoolentry`. - -- The "CPFP Carveout" has been removed from the mempool logic. The CPFP carveout - allowed one additional child transaction to be added to a package that's already - at its descendant limit, but only if that child has exactly one ancestor - (the package's root) and is small (no larger than 10kvB). Nothing is allowed to - bypass the cluster count limit. It is expected that smart contracting use-cases - requiring similar functionality employ TRUC transactions and sibling eviction - instead going forward. diff --git a/doc/release-notes-33657.md b/doc/release-notes-33657.md deleted file mode 100644 index a9821323356..00000000000 --- a/doc/release-notes-33657.md +++ /dev/null @@ -1,5 +0,0 @@ -New REST API ------------- - -- A new REST API endpoint (`/rest/blockpart/.?offset=&size=`) has been introduced - for efficiently fetching a range of bytes from block ``. diff --git a/doc/release-notes-33770.md b/doc/release-notes-33770.md deleted file mode 100644 index 58e118635fd..00000000000 --- a/doc/release-notes-33770.md +++ /dev/null @@ -1,4 +0,0 @@ -`-asmap` requires explicit filename ------------------------------------ - -In previous releases, if `-asmap` was specified without a filename, this would try to load an `ip_asn.map` data file. Now loading an asmap file requires an explicit filename like `-asmap=ip_asn.map`. This change was made to make the option easier to understand, because it was confusing for there to be a default filename not actually loaded by default (https://github.com/bitcoin/bitcoin/issues/33386). Also this change makes the option more future-proof, because in upcoming releases, specifying `-asmap` will load embedded asmap data instead of an external file (https://github.com/bitcoin/bitcoin/pull/28792). diff --git a/doc/release-notes-33842.md b/doc/release-notes-33842.md deleted file mode 100644 index ad15f50b28b..00000000000 --- a/doc/release-notes-33842.md +++ /dev/null @@ -1,4 +0,0 @@ -Build System ------------- - -- The minimum supported GCC compiler version has been raised to 12.1 (#33842). diff --git a/doc/release-notes-33872.md b/doc/release-notes-33872.md deleted file mode 100644 index 486a3b26878..00000000000 --- a/doc/release-notes-33872.md +++ /dev/null @@ -1,5 +0,0 @@ -P2P and network changes ------------------------ - -- The `-maxorphantx` startup option has been removed. It was - previously deprecated and has no effect anymore since v30.0. (#33872) diff --git a/doc/release-notes-33892.md b/doc/release-notes-33892.md deleted file mode 100644 index e9d41b80122..00000000000 --- a/doc/release-notes-33892.md +++ /dev/null @@ -1,8 +0,0 @@ -P2P and network changes ------------------------ - -- Transactions participating in one-parent-one-child package relay can now have the parent - with a feerate lower than the `-minrelaytxfee` feerate, even 0 fee. This expands the change - from 28.0 to also cover packages of non-TRUC transactions. Note that in general the - package child can have additional unconfirmed parents, but they must already be - in-mempool for the new package to be relayed. (#33892) diff --git a/doc/release-notes-34031.md b/doc/release-notes-34031.md deleted file mode 100644 index c0f29a9a803..00000000000 --- a/doc/release-notes-34031.md +++ /dev/null @@ -1,4 +0,0 @@ -Net ---- -- `tor` has been removed as a network specification. It - was deprecated in favour of `onion` in v0.17.0. (#34031) diff --git a/doc/release-notes-34088.md b/doc/release-notes-34088.md deleted file mode 100644 index 5aa8a9d992f..00000000000 --- a/doc/release-notes-34088.md +++ /dev/null @@ -1,2 +0,0 @@ -- When `-logsourcelocations` is enabled, the log output now contains just the - function name instead of the entire function signature. (#34088) diff --git a/doc/release-notes-34184.md b/doc/release-notes-34184.md deleted file mode 100644 index c582023eea2..00000000000 --- a/doc/release-notes-34184.md +++ /dev/null @@ -1,8 +0,0 @@ -Mining IPC ----------- - -- `Mining.createNewBlock` now has a `cooldown` behavior (enabled by default) - that waits for IBD to finish and for the tip to catch up. This usually - prevents a flood of templates during startup, but is not guaranteed. (#34184) -- `Mining.interrupt()` can be used to interrupt `Mining.waitTipChanged` and - `Mining.createNewBlock`. (#34184) diff --git a/doc/release-notes-34197.md b/doc/release-notes-34197.md deleted file mode 100644 index 377ca9cc43a..00000000000 --- a/doc/release-notes-34197.md +++ /dev/null @@ -1,7 +0,0 @@ -Updated RPCs ------------- - -- The `getpeerinfo` RPC no longer returns the `startingheight` field unless - the configuration option `-deprecatedrpc=startingheight` is used. The - `startingheight` field will be fully removed in the next major release. - (#34197) diff --git a/doc/release-notes-34512.md b/doc/release-notes-34512.md deleted file mode 100644 index b863448853f..00000000000 --- a/doc/release-notes-34512.md +++ /dev/null @@ -1,8 +0,0 @@ -Updated RPCs ------------- - -- The `getblock` RPC now returns a `coinbase_tx` object at verbosity levels 1, 2, - and 3. It contains `version`, `locktime`, `sequence`, `coinbase` and - `witness`. This allows for efficiently querying coinbase - transaction properties without fetching the full transaction data at - verbosity 2+. (#34512) diff --git a/doc/release-notes-34568.md b/doc/release-notes-34568.md deleted file mode 100644 index e48772330c1..00000000000 --- a/doc/release-notes-34568.md +++ /dev/null @@ -1,11 +0,0 @@ -Mining IPC ----------- - -The IPC mining interface now requires mining clients to use the latest `mining.capnp` schema. Clients built against older schemas will fail when calling `Init.makeMining` and receive an RPC error indicating the old mining interface is no longer supported. Mining clients must update to the latest schema and regenerate bindings to continue working. (#34568) - -Notable IPC mining interface changes since the last release: -- `Mining.createNewBlock` and `Mining.checkBlock` now require a `context` parameter. -- `Mining.waitTipChanged` now has a default `timeout` (effectively infinite / `maxDouble`) if the client omits it. -- `BlockTemplate.getCoinbaseTx()` now returns a structured `CoinbaseTx` instead of raw bytes. -- Removed `BlockTemplate.getCoinbaseCommitment()` and `BlockTemplate.getWitnessCommitmentIndex()`. -- Cap’n Proto default values were updated to match the corresponding C++ defaults for mining-related option structs (e.g. `BlockCreateOptions`, `BlockWaitOptions`, `BlockCheckOptions`). diff --git a/doc/release-notes-34692.md b/doc/release-notes-34692.md deleted file mode 100644 index 0336dfaf99e..00000000000 --- a/doc/release-notes-34692.md +++ /dev/null @@ -1,6 +0,0 @@ -## Updated settings - -- The default `-dbcache` value has been increased to `1024` MiB from `450` MiB - on systems where at least `4096` MiB of RAM is detected. - This is a performance increase, but will use more memory. - To maintain the previous behaviour, set `-dbcache=450`. From 48b952cbb67e4a59e1f036375240bbb23ae21648 Mon Sep 17 00:00:00 2001 From: Ava Chow Date: Fri, 6 Mar 2026 08:44:05 -0800 Subject: [PATCH 3/3] build: bump to 31.99 --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index db7a19ad93a..7fe17cf6209 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -27,7 +27,7 @@ get_directory_property(precious_variables CACHE_VARIABLES) # Project / Package metadata #============================= set(CLIENT_NAME "Bitcoin Core") -set(CLIENT_VERSION_MAJOR 30) +set(CLIENT_VERSION_MAJOR 31) set(CLIENT_VERSION_MINOR 99) set(CLIENT_VERSION_BUILD 0) set(CLIENT_VERSION_RC 0)