doc: Move release notes to wiki ahead of branch-off
What changed, and why it matters
This commit only deletes release-note documentation files (421 lines removed across 44 files) as part of moving them to the project wiki ahead of a release branch-off. No program code, build scripts, tests, or configuration logic were changed. It cannot introduce, fix, or enable any security vulnerability by itself.
No security action required for this commit. Treat as routine documentation housekeeping. Reviewers may separately verify that the corresponding code changes referenced in the removed notes were already merged and released as described.
Security signals we found
Removed release note for #36048 describing authenticated RPC walletnotify command injection (historical, not new)
Removed release note for #35319 describing possible IP leak in private broadcast (historical, not new)
Removed release note for #35182 describing HTTP server rewrite replacing libevent (historical, not new)
Removed release note for #35592 describing rpcallowip immediate disconnection behavior (historical, not new)
No code, build, or configuration changes present in the diff
Evidence from the diff
The diff consists entirely of removals of per-PR release note snippets under doc/release-notes-*.md. These are human-readable changelog fragments, not executable code. The commit message explicitly states the intent: ‘Move release notes to wiki ahead of branch-off.’ While the deleted notes describe prior security-relevant changes (e.g., #36048 walletnotify command injection, #35319 private broadcast IP leak, #35182 HTTP server rewrite), removing the notes does not alter the underlying code or its behavior. The security signals below are therefore historical references contained in the removed text, not new issues introduced by this commit.
Changed components
doc/release-notes-*.md files onlyInspect captured patch +0 / −421
### doc/release-notes-21283.md
@@ -1,6 +0,0 @@
-Updated RPCs
-------------
-
-- `createpsbt`, `walletcreatepsbt`, `converttopsbt`, and `psbtbumpfee`
- will now default to creating version 2 PSBTs. An optional `psbt_version`
- argument is added to these RPCs which allows specifying the version of PSBT to create.
### doc/release-notes-26201.md
@@ -1,9 +0,0 @@
-RPC
----
-
-- 'taproot' has been removed from 'getdeploymentinfo' because its historical
- activation height is no longer used anywhere in the codebase.
- Applications that rely on `deployments.taproot` to detect Taproot support
- should either assume Taproot to be always active (since Bitcoin Core v24.0),
- or check for `TAPROOT` in the `script_flags` array returned by
- `getdeploymentinfo` (since Bitcoin Core v31.0). (#26201)
### doc/release-notes-26988.md
@@ -1,8 +0,0 @@
-Tools and Utilities
---------
-
-- CLI -addrinfo now returns the full set of known addresses. In previous versions (v22.0 - v30.0) the set of returned
- addresses was filtered for quality and recency. This was changed since it does not match the logic for selecting peers
- to connect to, which does not filter. Note: CLI -addrinfo now requires bitcoind v26.0 or later, as it uses the
- getaddrmaninfo RPC internally. Users querying older, unmaintained node versions would need to use an older bitcoin-cli
- version. (#26988)
### doc/release-notes-29060.md
@@ -1,10 +0,0 @@
-- Logging and RPC
-
- - Bitcoin Core now reports a debug message explaining why transaction inputs are non-standard.
-
- - This information is now returned in the responses of the transaction-sending RPCs `submitpackage`,
- `sendrawtransaction`, and `testmempoolaccept`, and is also logged to `debug.log` (if `mempoolrej`
-+ debug category is enabled) when such transactions are received over the P2P network.
-
- - This does not change the existing error code `bad-txns-nonstandard-inputs`, but instead adds additional debug information to it.
-
### doc/release-notes-29136.md
@@ -1,6 +0,0 @@
-Wallet
-------
-- A new RPC `addhdkey` is added which allows a BIP 32 extended key to be added to the wallet without
- needing to import it as part of a separate descriptor. This key will not be used to produce any
- output scripts unless it is explicitly imported as part of a separate descriptor independent of
- the `addhdkey` RPC.
### doc/release-notes-31560.md
@@ -1,8 +0,0 @@
-Updated RPCs
-------------
-
-- The `dumptxoutset` RPC now supports writing to a named pipe
- on UNIX-like systems (see mkfifo(1) and mkfifo(3) man pages).
- This allows the raw UTXO set data to be consumed directly by
- another process (e.g., the `contrib/utxo-tools/utxo_to_sqlite.py`
- conversion script) without first writing it to disk. (#31560)
### doc/release-notes-32220.md
@@ -1,9 +0,0 @@
-### Build System
-
-- The undocumented `BITCOIN_GENBUILD_NO_GIT` environment variable is no longer
- required and has been removed. The build system now automatically detects
- when it is being built from a source archive or as a subproject of a git-aware
- parent project and skips git metadata fetching.
-
- Users who need to disable git execution explicitly can still do so by
- configuring with `-DCMAKE_DISABLE_FIND_PACKAGE_Git=ON`.
### doc/release-notes-32489.md
@@ -1,15 +0,0 @@
-New RPCs
---------
-
-A new `exportwatchonlywallet` RPC creates a watchonly wallet file from an
-existing descriptor wallet. The exported file contains the wallet's public
-descriptors (with derived key caches where needed), transactions, and address
-book data, but no private keys. It can be imported on another node using the
-existing `restorewallet` RPC.
-
-Wallet
-------
-
-The [Offline Signing Tutorial](/doc/offline-signing-tutorial.md) has been
-updated to use `exportwatchonlywallet` for setting up the online watch-only
-wallet, replacing the previous manual descriptor import workflow.
### doc/release-notes-32784.md
@@ -1,9 +0,0 @@
-Wallet
-------
-
-- A new `derivehdkey` RPC is available to obtain an xpub or xprv for a
- derivation path with at least one hardened step from an HD key known to the
- wallet. This can be used to coordinate a multisig setup, where each signer
- shares an xpub using a
- different derivation path than the default single-signature descriptors. The
- example in `doc/multisig-tutorial.md` is updated to use this RPC. (#32784)
### doc/release-notes-32800.md
@@ -1,9 +0,0 @@
-- Mempool RPCs (`getrawmempool`, `getmempoolentry`, `testmempoolaccept`, `submitpackage`)
-now include an additional field `vsize_adjusted` (which is the sigop-adjusted virtual size
-used for policy) and `vsize_bip141` (which represents the raw BIP141 virtual size).
-While `vsize` is marked as DEPRECATED, it was previously erroneously described as the BIP 141
-vsize, but is actually sigops-adjusted vsize. Use `vsize_bip141` to actually get that behavior
-or switch to the explicit `vsize_adjusted` for retained behavior.
-
-- `getrawtransaction` RPC now includes an additional field `vsize_adjusted`, which is the
-sigop-adjusted virtual size if the transaction is in the mempool.
### doc/release-notes-33259.md
@@ -1,4 +0,0 @@
-RPC
----
-
-The `getblockchaininfo` RPC now exposes progress for background validation if the `assumeutxo` feature is used. Once a node has synced from snapshot to tip, `verificationprogress` returns 1.0 and `initialblockdownload` false even though the node may still be validating blocks in the background. A new object, `backgroundvalidation`, provides details about the snapshot being validated, including snapshot height, number of blocks processed, best block hash, chainwork, median time, and verification progress.
### doc/release-notes-33414.md
@@ -1,9 +0,0 @@
-Notable changes
-===============
-
-P2P and network changes
------------------------
-
-Tor hidden services that are created automatically by Bitcoin Core will have
-[PoW defenses](https://tpo.pages.torproject.net/onion-services/ecosystem/technology/security/pow/)
-enabled if the Tor daemon supports that. (#33414)
### doc/release-notes-33671.md
@@ -1,11 +0,0 @@
-Updated RPCs
-------------
-
-- `getbalances` now includes a `nonmempool` field under `mine`, reporting
- the net balance of wallet transactions that are not in the mempool (e.g.
- due to too low a feerate, too many unconfirmed ancestors, or a too-large
- `OP_RETURN` output). This value is always negative, and is typically an
- over-estimate since it accounts for coins being spent but not for change
- outputs returning to the wallet (which are also outside the mempool).
- Without this field, funds involved in non-mempool transactions could
- appear to go missing from the wallet balance. (#33671)
### doc/release-notes-33920.md
@@ -1,4 +0,0 @@
-New RPCs
---------
-
-A new `exportasmap` RPC writes the ASMap data embedded at build time to a file.
### doc/release-notes-33966.md
@@ -1,9 +0,0 @@
-Mining
-------
-
-- The IPC mining interface now rejects out-of-range block template options
- instead of silently clamping them, such as oversized reserved block weight or
- coinbase sigops limits. (#33966)
-
-- The `-blockmaxweight` startup option is now rejected when it is lower than
- `-blockreservedweight`, instead of being silently clamped. (#33966)
### doc/release-notes-34075.md
@@ -1,52 +0,0 @@
-Updated RPCs
-------------
-
-- The `estimatesmartfee` RPC now combines two fee rate estimators: the existing
- block policy fee rate estimator and a new mempool fee rate estimator.
-
-- The new mempool fee rate estimator produces conservative and economical fee
- rate estimates from the current contents of the mempool. It only produces a
- fee rate estimate when recent blocks indicate a healthy mempool, and falls
- back to the higher of the minimum relay fee rate and the current mempool
- minimum fee rate when the mempool is too sparse. Its statistics are persisted
- to `fees/mempool_policy_estimator.dat` and reloaded on startup.
-
- `estimatesmartfee` returns the lower of the two fee rate estimators' results,
- so the mempool fee rate estimator can only lower the block policy fee rate
- estimate.
-
-- The combined estimate requires both estimators to succeed. If the mempool fee
- rate estimator cannot produce an estimate, for example, while the mempool is
- still loading, when too few recent blocks have been observed, or when the
- mempool is suspected to be unhealthy, an error is returned.
-
-- `estimatesmartfee` accepts an `options` object with `fee_rate_estimator`.
- Recognized values are `"none"` (the default, combined behavior described
- above), `"block_policy"` (use only the block policy fee rate estimator),
- and `"mempool_policy"` (use only the mempool fee rate estimator).
- All unknown values are treated as `"none"`.
- Users who want the previous behavior can select the block policy fee rate
- estimator explicitly.
-
-- The options object also accepts `verbosity`. A verbosity of `2` or higher
- also returns `mempool_health_statistics`.
-
-- When `fee_rate_estimator` is `"none"` and the estimate succeeds, the response
- also includes an `estimator` field identifying which fee rate estimator produced
- the result.
-
-- Block policy fee estimator data is now stored in
- `fees/block_policy_estimates.dat`. If the new file does not exist, the
- legacy `fee_estimates.dat` file is moved to the new path during startup. If
- both files exist, the legacy file is removed.
-
-- Wallet fee rate estimation uses the default combined estimate.
-
-Wallet
-------
-
-- The `fee_reason` field returned by wallet transaction creation RPCs now
- reports the reason the wallet selected the fee rate (fee rate estimator,
- mempool minimum, fallback, or minimum required) instead of the block policy
- fee rate estimator's internal threshold details. Those details remain
- available in the block policy fee rate estimator debug log.
### doc/release-notes-34544.md
@@ -1,7 +0,0 @@
-Wallet
-------
-
-- Wallets names that are relative paths including `..` and `.` elements, and
- wallets named `/` are no longer allowed. Any users that depended on this
- behavior can instead use absolute paths to their wallet or move their wallet
- to a safer path.
### doc/release-notes-34628.md
@@ -1,13 +0,0 @@
-P2P and network changes
------------------------
-
-- To reduce memory and CPU usage during periods of high transaction
- volume, rate-limiting of outgoing transaction relay has been changed
- to use a global backlog instead of being done on a per-peer basis. The
- default rate-limit remains as 14 tx/s (boosted by 2.5x for outbound
- peers), though this can be changed via the `-txsendrate` configuration
- option. An additional bandwidth rate-limit has also been introduced
- at 12MB of transactions per 10 minutes, with a high burst rate. The
- size of the global backlog and the token bucket values for the rate
- limits can be queried via the `getnetworkinfo` RPC. (#34628)
-
### doc/release-notes-34672.md
@@ -1,11 +0,0 @@
-IPC Interface
--------------
-
-- `BlockTemplate.submitSolution` now returns `reason` and `debug` rejection
- details in addition to the boolean result. Clients must regenerate IPC
- bindings from the updated `mining.capnp` schema to use the new method. The
- previous `@7` method now returns an error directing clients to update. (#34672)
-
-- `BlockTemplate.submitSolution` now reports duplicate blocks as failures with
- `reason="duplicate"`, matching `Mining.submitBlock`, instead of returning
- success for duplicate submissions. (#34672)
### doc/release-notes-34779.md
@@ -1,5 +0,0 @@
-Logging
--------
-
-- BIP 9 bits 5 to 28 inclusive are now ignored for soft fork signaling, as per BIP 323. We won't
- warn about unknown deployments when receiving blocks that set any of those bits in their version.
### doc/release-notes-34794.md
@@ -1,8 +0,0 @@
-REST API
---------
-
-- REST responses now include `Cache-Control` headers to guide intermediary
- caches. Immutable responses such as block binary and hex data, block parts,
- block filters, spent transaction outputs, and block-specific deployment info
- are marked cacheable for one day. Responses that can change with active chain
- or node state, as well as errors, are marked `no-store`. (#34794)
### doc/release-notes-34796.md
@@ -1,6 +0,0 @@
-Updated RPCs
-------------
-
-- The `-deprecatedrpc=startingheight` configuration option has been removed.
- The `getpeerinfo` RPC no longer returns the `startingheight` field, which
- was previously deprecated in v31.0. (#34796)
### doc/release-notes-34911.md
@@ -1,12 +0,0 @@
-### Mempool
-
-mempoolfullrbf=1 behaviour has been the default since v28 and the argument has
-been removed since v29 subsequently. The `getmempoolinfo` RPC stops returning the
-deprecated `fullrbf` key in the response unless the user requests it via the
-`-deprecatedrpc=fullrbf` node argument.
-
-Also, the `bip125-replaceable` key is removed from the mempool RPCs
-responses (because it, too, has been deprecated since v29) unless the user
-requests it via `-deprecatedrpc=bip125` node argument. Affected mempool RPCs
-are `getrawmempool`, `getmempoolancestors`, `getmempooldescendants`, and
-`getmempoolentry`.
### doc/release-notes-34917.md
@@ -1,9 +0,0 @@
-RPC and Startup Option
-------------
-The `bip125-replaceable` key in the wallet transaction RPCs such
-as `listtransactions`, `listsinceblock`, and `gettransaction` is
-marked as deprecated. Users still have the option to retrieve this
-key by passing the `-deprecatedrpc=bip125` startup option. Also,
-the `-walletrbf` startup option has been marked as deprecated and
-will be fully removed in the next release. Using this option emits
-a warning in the logs.
### doc/release-notes-35182.md
@@ -1,21 +0,0 @@
-HTTP: RPC / REST
-----------------
-
-The HTTP server has been rewritten from scratch to replace libevent. (#35182)
-
-The `libevent` logging category has been removed. Configurations like
-`-debug=libevent` or `-debugexclude=libevent` will log a deprecation warning
-and be ignored. These configurations will result in an error in a future release.
-
-Certain HTTP edge cases will observe different behavior to be more RFC-compliant:
-
-- Stricter enforcement of maximum headers size (8192 bytes)
-- Reject requests with whitespace in header field-names
-- "Line Folding" is rejected (whitespace at start of a header line)
-- Tolerate `%` at the end of requested URLs
-- Multiple "Content-Length" headers with different values are rejected
-
-A new configuration option `-rpcmaxconnections` (default `16`) limits the
-number of simultaneously connected HTTP clients to the server. The application
-will now attempt to reserve file descriptors for the HTTP server sockets. If your
-system has limited resources, consider using a lower setting.
### doc/release-notes-35266
@@ -1,7 +0,0 @@
-RPC
----
-
-The `migratewallet` RPC now gives the option to not load the descriptor wallet after migrating it from a legacy wallet.
-This will now allow pruned nodes to migrate a wallet out of sync below the pruning height.
-Note that to use the new wallet it must be loaded to a full node anyway.
-
### doc/release-notes-35267.md
@@ -1,4 +0,0 @@
-RPC
----
-
-The `getprivatebroadcastinfo` and `abortprivatebroadcast` RPCs now return an error `-32601`, "Method not found", when `-privatebroadcast` is not enabled at startup.
### doc/release-notes-35295.md
@@ -1,8 +0,0 @@
-Performance Improvements
-------------------------
-
-- Block validation can now prefetch input prevouts from the chainstate database
- in parallel while connecting blocks, speeding up validation when prevouts need
- to be read from disk. A new `-prevoutfetchthreads=<n>` option controls the
- number of prefetch worker threads. The default is 8 threads, up to a maximum
- of 16; set it to 0 to disable parallel prefetching. (#35295)
### doc/release-notes-35319.md
@@ -1,20 +0,0 @@
-P2P and network changes
------------------------
-
-- Fix a possible leak of the originator's IP address for transactions sent with
-`sendrawtransaction` RPC when `-privatebroadcast=1`. When Bitcoin Core connects
-to a peer, if that peer has been advertised to support P2P protocol v2, then
-Bitcoin Core tries to use the v2 protocol and if that fails it retries the
-connection using the v1 protocol. When the private broadcast is about to send a
-transaction to an IPv4 or IPv6 peer it overrides the normal proxy selection and
-forces the connection through the Tor proxy (and thus through the Tor network,
-protecting the sender's IP address). However if v2 protocol is tried and it
-fails, then the v1 retry connection would be made disregarding the "override
-proxy" request, possibly making an IPv4 or IPv6 direct connection. In other
-words, for this to happen the following must be true:
- 1. An IPv4 or IPv6 address has been advertised to the sender, indicating v2
- support.
- 2. The sender must have Tor configured.
- 3. The sender's configuration must be such that connections to IPv4 or IPv6
- are made directly (no `-proxy=` is used for IPv4 or IPv6).
- 4. The recipient does not support v2 (the flags from 1. are bogus). (#35319)
### doc/release-notes-35406.md
@@ -1,8 +0,0 @@
-P2P and network changes
------------------------
-
-- The private-broadcast queue (transactions submitted via `sendrawtransaction`
-when `-privatebroadcast` is enabled and not yet echoed back from the network)
-is now capped at 10,000 entries. When full, new submissions are rejected. It is
-up to the caller to inspect the queue via `getprivatebroadcastinfo` and free
-up space when stuck via `abortprivatebroadcast`. (#35406)
### doc/release-notes-35501.md
@@ -1,4 +0,0 @@
-RPC
----
-
-- `gettransaction`, `listtransactions`, and `listsinceblock` now have an `alternate_wtxids` field which lists the wtxids of all transactions that have the same txid. When there is only one known witness variant the field is an empty array, analogous to `walletconflicts` and `mempoolconflicts`.
### doc/release-notes-35531.md
@@ -1,12 +0,0 @@
-## Index
-
-- The transaction index (`-txindex`) now stores less data on disk; a fully
- rebuilt index takes less than half the space. The index is backwards compatible,
- so existing users will not see the space saving unless the index is recreated.
- To do so, stop the node, delete the `<datadir>/indexes/txindex` directory, and
- restart; rebuilding can take up to a few hours depending on hardware. Progress
- can be monitored using the `getindexinfo` RPC. Once rebuilt, the index can no
- longer be read by previous releases, so downgrading will rebuild it again in
- the old format. When downgrading permanently, delete the
- `<datadir>/indexes/txindex` directory first, since previous releases do not
- reclaim the space used by entries in the new format. (#35531)
### doc/release-notes-35592.md
@@ -1,6 +0,0 @@
-HTTP: RPC / REST
-----------------
-
-Clients attempting to connect from addresses not allowed by the `-rpcallowip`
-option (or its default, `localhost`) will now be immediately disconnected
-instead of receiving a `403 Forbidden`.
### doc/release-notes-35601.md
@@ -1,4 +0,0 @@
-Wallet
-------
-
-The `send` and `sendall` RPCs are no longer marked as experimental. (#35601)
### doc/release-notes-35610.md
@@ -1,6 +0,0 @@
-Tools and Utilities
--------------------
-
-- A new `bitcoin-util getchainparams` command returns hardcoded details
- about the selected chain.
-
### doc/release-notes-35634.md
@@ -1,8 +0,0 @@
-Indexes
--------
-
-- The transaction output spender index (`-txospenderindex`) now uses less disk
- space. Existing indexes remain compatible and no action is required. To reclaim
- the space for data indexed before upgrading, stop the node, delete the
- `<datadir>/indexes/txospenderindex/` directory, and restart with
- `-txospenderindex` enabled to rebuild it. (#35634, #35568)
### doc/release-notes-35680.md
@@ -1,13 +0,0 @@
-P2P and network changes
------------------------
-
-- Each transaction sent via private broadcast (`-privatebroadcast`) is limited
- to 1,000 send attempts. After reaching the limit, broadcasting stops; call
- `sendrawtransaction` again to retry. Transactions that reach the limit remain
- available through `getprivatebroadcastinfo` and `abortprivatebroadcast`. (#35680)
-
-Updated RPCs
-------------
-
-- `getprivatebroadcastinfo` now reports an `attempts_remaining` field for each
- transaction. (#35680)
### doc/release-notes-35696.md
@@ -1,8 +0,0 @@
-### P2P and Network Changes
-
-Support for the legacy ElGamal (type 0) encryption type when creating I2P
-sessions is being sunset by the I2P network and will be removed from bitcoind on
-or before v34. Nodes using I2P with versions of Bitcoin Core earlier than v26.1
-(PRs #29200, #29209) will soon only be able to connect to other legacy ElGamal
-I2P peers and will be increasingly isolated from the rest of the network, with a
-reduced anonymity set. See #35696 for details.
### doc/release-notes-35836.md
@@ -1,5 +0,0 @@
-# RPC (wallet)
-
-* The `fundrawtransaction` RPC no longer accepts a boolean as the second
- positional argument. This silent no-op fallback was removed and the argument
- is now fully type checked. Passing a boolean will raise an error. (#35836)
### doc/release-notes-36048.md
@@ -1,8 +0,0 @@
-Wallet
-------
-
-* On non-Windows systems, an authenticated RPC caller allowed to create wallets
- could execute arbitrary commands as the node process account when
- `-walletnotify` was configured, by crafting a wallet name with regex
- replacement characters. Wallet notification placeholder replacement now
- treats wallet names literally. (#36048)
### doc/release-notes-36202.md
@@ -1,12 +0,0 @@
-Net
----
-
-The project is currently considering whether to
-drop support for CJDNS (see discussion in #36041).
-Since its introduction in v23.0, it has not gained
-substantial adoption amongst nodes, and there is some
-concern about supporting a network with such a low number
-of peers.
-
-The CJDNS documentation was updated in #34811 to simplify
-the setup / peer discovery process.
### doc/release-notes-953.md
@@ -1,5 +0,0 @@
-GUI Changes
----
-
-The migrate wallet option now allows to disable wallet loading after migrating.
-It is useful in case the node is pruned and the wallet was created before the pruned height.
### doc/release-notes-gui-872.md
@@ -1,7 +0,0 @@
-GUI
----
-
-* A menu action has been added to allow creating a watchonly wallet file from
- an existing descriptor wallet. This option mirrors the `exportwatchonlywallet`
- RPC - the exported file can be imported to another node using the Restore
- Wallet menu action.
### doc/release-notes-removeprunedfunds.md
@@ -1,6 +0,0 @@
-Updated RPCs
-------------
-
-- The `removeprunedfunds` RPC has been deprecated and will be removed in the
-next major release. In order to continue using it, `bitcoind` must be started
-with the `-deprecatedrpc=removeprunedfunds` option.Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.