diff --git a/doc/release-notes.md b/doc/release-notes.md
index d5dd0f243c2..db2c7690e36 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,9 +1,9 @@
-v31.0 Release Notes
+v31.x Release Notes
===================
-Bitcoin Core version 31.0 is now available from:
+Bitcoin Core version 31.x is now available from:
-
+
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
@@ -39,334 +39,35 @@ on them. It is not recommended to use Bitcoin Core on unsupported systems.
Notable changes
===============
-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 improves performance
-but increases memory usage. On some systems (for example when running in
-containers), the detected RAM may exceed the memory actually available, which
-can lead to out-of-memory conditions. To maintain the previous behavior, set
-`-dbcache=450`. See
-[reduce-memory.md](https://github.com/bitcoin/bitcoin/blob/master/doc/reduce-memory.md)
-for further guidance on low-memory systems. (#34692)
+### P2P
-Mempool
--------
+- #35032 net_processing: don't modify addrman for private broadcast connections
-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:
+### Test
-- 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.
+- #34425 test: Fix all races after a socket is closed gracefully
+- #34863 test: Clean shutdown in Socks5Server
+- #35080 test: Add missing self.options.timeout_factor scale in tool_bitcoin_chainstate.py
-- 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.
+### CI
-- 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.
+- #35202 ci: restore sockets in i686, no IPC job
-- 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.
+### Misc
-- 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.
-
-- Some additional discussion can be found at
-[doc/policy/mempool-terminology.md](https://github.com/bitcoin/bitcoin/blob/master/doc/policy/mempool-terminology.md)
-and
-[doc/policy/mempool-replacements.md](https://github.com/bitcoin/bitcoin/blob/master/doc/policy/mempool-replacements.md).
-
-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. (#34329)
-
-- 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)
-
-- The release has asmap data embedded for the first time, allowing the asmap
-feature to be used without any externally sourced file. The embedded map [was
-created on 2026-03-05](https://github.com/bitcoin/bitcoin/pull/34696). Despite
-the data being available, the option remains off-by-default. Users still need to
-set `-asmap` or `-asmap=1` explicitly to make it possible to use a peer's ASN
-(ISP/hoster identifier) in netgroup bucketing in order to ensure a higher
-diversity in their peer set.
-
-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)
-
-- 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)
-
-- 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)
-
-REST API
---------
-
-- A new REST API endpoint
-(`/rest/blockpart/.?offset=&size=`) has been
-introduced for efficiently fetching a range of bytes from block ``.
-(#33657)
-
-Build System
-------------
-
-- The minimum supported Clang compiler version has been raised to 17.0 (#33555).
-- The minimum supported GCC compiler version has been raised to 12.1 (#33842).
-
-Updated settings
-----------------
-
-- 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)
-
-- Specifying `-asmap` or `-asmap=1` will load the embedded asmap data instead of
-an external file. In previous releases, if `-asmap` was specified without a
-filename, this would try to load an `ip_asn.map` data file. Now loading an
-external asmap file always requires an explicit filename like
-`-asmap=ip_asn.map`.
-
-- The `-maxorphantx` startup option has been removed. It was previously
-deprecated and has no effect anymore since v30.0. (#33872)
-
-- `tor` has been removed as a network specification. It was deprecated in favour
-of `onion` in v0.17.0. (#34031)
-
-- When `-logsourcelocations` is enabled, the log output now contains just the
-function name instead of the entire function signature. (#34088)
-
-- 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`. (#34692)
-
-- `-privatebroadcast` is added to enable private broadcast behavior for
-`sendrawtransaction`.
-
-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)
-
-GUI changes
------------
-
-- The GUI has been updated to Qt 6.8. (#34650)
-
-- The `createwallet`, `createwalletdescriptor` and `migratewallet` commands are
-filtered from the console history to improve security and privacy. (gui#901)
-
-- The Restore Wallet dialog shows an error message if the restored wallet name
-is empty. (gui#924)
-
-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 `minrelaytxfee`. 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.
-
-Restarting a node with this change invalidates previously saved
-estimates in `fee_estimates.dat`, the fee estimator will start tracking fresh
-stats.
-
-IPC Interface
--------------
-
-- 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)
-- `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)
-- `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`).
+- #35175 multi_index: fix compilation failure with boost >= 1.91
Credits
=======
Thanks to everyone who directly contributed to this release:
-- 0xb10c
-- Alexander Wiederin
-- Alfonso Roman Zubeldia
-- amisha
-- ANAVHEOBA
-- Andrew Toth
-- Anthony Towns
-- Antoine Poinsot
-- ANtutov
-- Anurag chavan
-- Ava Chow
-- bensig
-- Ben Westgate
-- billymcbip
-- b-l-u-e
-- Brandon Odiwuor
-- brunoerg
-- Bruno Garcia
-- Calin Culianu
-- Carl Dong
-- Chandra Pratap
-- Chris Stewart
-- Coder
- Cory Fields
-- da1sychain
-- Daniela Brozzoni
-- Daniel Pfeifer
-- David Gumberg
-- dergoegge
-- Dmitry Goncharov
-- Enoch Azariah
-- Eugene Siegel
-- Fabian Jahr
-- fanquake
-- Fibonacci747
-- flack
-- frankomosh
-- furszy
-- glozow
- Greg Sanders
-- Hao Xu
-- Hennadii Stepanov
-- Henry Romp
-- Hodlinator
-- ismaelsadeeq
-- janb84
-- jayvaliya
-- joaonevess
-- John Moffett
-- Josh Doman
-- kevkevinpal
-- l0rinc
-- Luke Dashjr
-- Mara van der Laan
+- Lőrinc
- MarcoFalke
-- marcofleon
-- Martin Zumsande
-- Matthew Zipkin
-- Max Edwards
-- Murch
-- Musa Haruna
-- naiyoma
-- nervana21
-- Novo
-- optout
-- pablomartin4btc
-- Padraic Slattery
-- Pieter Wuille
-- Pol Espinasa
-- pythcoiner
-- rkrux
-- Robin David
-- Roman Zeyde
-- rustaceanrob
-- Ryan Ofsky
-- SatsAndSports
-- scgbckbone
-- Sebastian Falbesoner
-- sedited
-- seduless
-- Sergi Delgado Segura
-- Sjors Provoost
-- SomberNight
-- sstone
-- stickies-v
-- stratospher
-- stringintech
-- Suhas Daftuar
-- tboy1337
-- TheCharlatan
-- Tim Ruffing
+- optout21
- Vasil Dimov
-- w0xlt
-- WakeTrainDev
-- Weixie Cui
-- willcl-ark
-- Woolfgm
-- yancy
-- Yash Bhutwala
-- yuvicc
-- zaidmstrr
As well as to everyone that helped with translations on
[Transifex](https://explore.transifex.com/bitcoin/bitcoin/).