aboutsummaryrefslogtreecommitdiff
path: root/doc/release-notes.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/release-notes.md')
-rw-r--r--doc/release-notes.md355
1 files changed, 26 insertions, 329 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 24920ba450..19f604c66b 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -1,12 +1,9 @@
-24.0.1 Release Notes
+24.1rc1 Release Notes
====================
-Due to last-minute issues (#26616), 24.0, although tagged, was never fully
-announced or released.
+Bitcoin Core version 24.1rc1 is now available from:
-Bitcoin Core version 24.0.1 is now available from:
-
- <https://bitcoincore.org/bin/bitcoin-core-24.0.1/>
+ <https://bitcoincore.org/bin/bitcoin-core-24.1/test.rc1/>
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
@@ -40,352 +37,52 @@ Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.
-Notice of new option for transaction replacement policies
-=========================================================
-
-This version of Bitcoin Core adds a new `mempoolfullrbf` configuration
-option which allows users to change the policy their individual node
-will use for relaying and mining unconfirmed transactions. The option
-defaults to the same policy that was used in previous releases and no
-changes to node policy will occur if everyone uses the default.
-
-Some Bitcoin services today expect that the first version of an
-unconfirmed transaction that they see will be the version of the
-transaction that ultimately gets confirmed---a transaction acceptance
-policy sometimes called "first-seen".
-
-The Bitcoin Protocol does not, and cannot, provide any assurance that
-the first version of an unconfirmed transaction seen by a particular
-node will be the version that gets confirmed. If there are multiple
-versions of the same unconfirmed transaction available, only the miner
-who includes one of those transactions in a block gets to decide which
-version of the transaction gets confirmed.
-
-Despite this lack of assurance, multiple merchants and services today
-still make this assumption.
-
-There are several benefits to users from removing this *first-seen*
-simplification. One key benefit, the ability for the sender of a
-transaction to replace it with an alternative version paying higher
-fees, was realized in [Bitcoin Core 0.12.0][] (February 2016) with the
-introduction of [BIP125][] opt-in Replace By Fee (RBF).
-
-Since then, there has been discussion about completely removing the
-first-seen simplification and allowing users to replace any of their
-older unconfirmed transactions with newer transactions, a feature called
-*full-RBF*. This release includes a `mempoolfullrbf` configuration
-option that allows enabling full-RBF, although it defaults to off
-(allowing only opt-in RBF).
-
-Several alternative node implementations have already enabled full-RBF by
-default for years, and several contributors to Bitcoin Core are
-advocating for enabling full-RBF by default in a future version of
-Bitcoin Core.
-
-As more nodes that participate in relay and mining begin enabling
-full-RBF, replacement of unconfirmed transactions by ones offering higher
-fees may rapidly become more reliable.
-
-Contributors to this project strongly recommend that merchants and services
-not accept unconfirmed transactions as final, and if they insist on doing so,
-to take the appropriate steps to ensure they have some recourse or plan for
-when their assumptions do not hold.
-
-[Bitcoin Core 0.12.0]: https://bitcoincore.org/en/releases/0.12.0/#opt-in-replace-by-fee-transactions
-[bip125]: https://github.com/bitcoin/bips/blob/master/bip-0125.mediawiki
-
-Notable changes
-===============
-
-P2P and network changes
------------------------
-
-- To address a potential denial-of-service, the logic to download headers from peers
- has been reworked. This is particularly relevant for nodes starting up for the
- first time (or for nodes which are starting up after being offline for a long time).
-
- Whenever headers are received from a peer that have a total chainwork that is either
- less than the node's `-minimumchainwork` value or is sufficiently below the work at
- the node's tip, a "presync" phase will begin, in which the node will download the
- peer's headers and verify the cumulative work on the peer's chain, prior to storing
- those headers permanently. Once that cumulative work is verified to be sufficiently high,
- the headers will be redownloaded from that peer and fully validated and stored.
-
- This may result in initial headers sync taking longer for new nodes starting up for
- the first time, both because the headers will be downloaded twice, and because the effect
- of a peer disconnecting during the presync phase (or while the node's best headers chain has less
- than `-minimumchainwork`), will result in the node needing to use the headers presync mechanism
- with the next peer as well (downloading the headers twice, again). (#25717)
-
-- With I2P connections, a new, transient address is used for each outbound
- connection if `-i2pacceptincoming=0`. (#25355)
-
-Updated RPCs
-------------
-
-- The `-deprecatedrpc=softforks` configuration option has been removed. The
- RPC `getblockchaininfo` no longer returns the `softforks` field, which was
- previously deprecated in 23.0. (#23508) Information on soft fork status is
- now only available via the `getdeploymentinfo` RPC.
-
-- The `deprecatedrpc=exclude_coinbase` configuration option has been removed.
- The `receivedby` RPCs (`listreceivedbyaddress`, `listreceivedbylabel`,
- `getreceivedbyaddress` and `getreceivedbylabel`) now always return results
- accounting for received coins from coinbase outputs, without an option to
- change that behaviour. Excluding coinbases was previously deprecated in 23.0.
- (#25171)
-
-- The `deprecatedrpc=fees` configuration option has been removed. The top-level
- fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees` are no
- longer returned by RPCs `getmempoolentry`, `getrawmempool(verbose=true)`,
- `getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`.
- The same fee fields can be accessed through the `fees` object in the result.
- The top-level fee fields were previously deprecated in 23.0. (#25204)
-
-- The `getpeerinfo` RPC has been updated with a new `presynced_headers` field,
- indicating the progress on the presync phase mentioned in the
- "P2P and network changes" section above.
-
-Changes to wallet related RPCs can be found in the Wallet section below.
-
-New RPCs
---------
-
-- The `sendall` RPC spends specific UTXOs to one or more recipients
- without creating change. By default, the `sendall` RPC will spend
- every UTXO in the wallet. `sendall` is useful to empty wallets or to
- create a changeless payment from select UTXOs. When creating a payment
- from a specific amount for which the recipient incurs the transaction
- fee, continue to use the `subtractfeefromamount` option via the
- `send`, `sendtoaddress`, or `sendmany` RPCs. (#24118)
-
-- A new `gettxspendingprevout` RPC has been added, which scans the mempool to find
- transactions spending any of the given outpoints. (#24408)
-
-- The `simulaterawtransaction` RPC iterates over the inputs and outputs of the given
- transactions, and tallies up the balance change for the given wallet. This can be
- useful e.g. when verifying that a coin join like transaction doesn't contain unexpected
- inputs that the wallet will then sign for unintentionally. (#22751)
-
-Updated REST APIs
------------------
-
-- The `/headers/` and `/blockfilterheaders/` endpoints have been updated to use
- a query parameter instead of path parameter to specify the result count. The
- count parameter is now optional, and defaults to 5 for both endpoints. The old
- endpoints are still functional, and have no documented behaviour change.
-
- For `/headers`, use
- `GET /rest/headers/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>`
- instead of
- `GET /rest/headers/<COUNT>/<BLOCK-HASH>.<bin|hex|json>` (deprecated)
-
- For `/blockfilterheaders/`, use
- `GET /rest/blockfilterheaders/<FILTERTYPE>/<BLOCK-HASH>.<bin|hex|json>?count=<COUNT=5>`
- instead of
- `GET /rest/blockfilterheaders/<FILTERTYPE>/<COUNT>/<BLOCK-HASH>.<bin|hex|json>` (deprecated)
-
- (#24098)
-
-Build System
-------------
-
-- Guix builds are now reproducible across architectures (x86_64 & aarch64). (#21194)
-
-New settings
-------------
-
-- A new `mempoolfullrbf` option has been added, which enables the mempool to
- accept transaction replacement without enforcing BIP125 replaceability
- signaling. (#25353)
-
-Wallet
-------
-
-- The `-walletrbf` startup option will now default to `true`. The
- wallet will now default to opt-in RBF on transactions that it creates. (#25610)
-
-- The `replaceable` option for the `createrawtransaction` and
- `createpsbt` RPCs will now default to `true`. Transactions created
- with these RPCs will default to having opt-in RBF enabled. (#25610)
-
-- The `wsh()` output descriptor was extended with Miniscript support. You can import Miniscript
- descriptors for P2WSH in a watchonly wallet to track coins, but you can't spend from them using
- the Bitcoin Core wallet yet.
- You can find more about Miniscript on the [reference website](https://bitcoin.sipa.be/miniscript/). (#24148)
-
-- The `tr()` output descriptor now supports multisig scripts through the `multi_a()` and
- `sortedmulti_a()` functions. (#24043)
-
-- To help prevent fingerprinting transactions created by the Bitcoin Core wallet, change output
- amounts are now randomized. (#24494)
-
-- The `listtransactions`, `gettransaction`, and `listsinceblock`
- RPC methods now include a wtxid field (hash of serialized transaction,
- including witness data) for each transaction. (#24198)
-
-- The `listsinceblock`, `listtransactions` and `gettransaction` output now contain a new
- `parent_descs` field for every "receive" entry. (#25504)
-
-- A new optional `include_change` parameter was added to the `listsinceblock` command.
+### P2P
-- RPC `getreceivedbylabel` now returns an error, "Label not found
- in wallet" (-4), if the label is not in the address book. (#25122)
+- #26878 I2P network optimizations
+- #26909 net: prevent peers.dat corruptions by only serializing once
-Migrating Legacy Wallets to Descriptor Wallets
----------------------------------------------
+### RPC and other APIs
-An experimental RPC `migratewallet` has been added to migrate Legacy (non-descriptor) wallets to
-Descriptor wallets. More information about the migration process is available in the
-[documentation](https://github.com/bitcoin/bitcoin/blob/master/doc/managing-wallets.md#migrating-legacy-wallets-to-descriptor-wallets).
+- #26515 rpc: Require NodeStateStats object in getpeerinfo
-GUI changes
------------
+### Build System
-- A new menu item to restore a wallet from a backup file has been added (gui#471).
+- #26944 depends: fix systemtap download URL
-- Configuration changes made in the bitcoin GUI (such as the pruning setting,
-proxy settings, UPNP preferences) are now saved to `<datadir>/settings.json`
-file rather than to the Qt settings backend (windows registry or unix desktop
-config files), so these settings will now apply to bitcoind, instead of being
-ignored. (#15936, gui#602)
+### Wallet
-- Also, the interaction between GUI settings and `bitcoin.conf` settings is
-simplified. Settings from `bitcoin.conf` are now displayed normally in the GUI
-settings dialog, instead of in a separate warning message ("Options set in this
-dialog are overridden by the configuration file: -setting=value"). And these
-settings can now be edited because `settings.json` values take precedence over
-`bitcoin.conf` values. (#15936)
+- #26595 wallet: be able to specify a wallet name and passphrase to migratewallet
+- #26675 wallet: For feebump, ignore abandoned descendant spends
+- #26679 wallet: Skip rescanning if wallet is more recent than tip
+- #26761 wallet: fully migrate address book entries for watchonly/solvable wallets
+- #27053 wallet: reuse change dest when re-creating TX with avoidpartialspends
+- #27080 wallet: Zero out wallet master key upon locking so it doesn't persist in memory
-Low-level changes
-=================
+### GUI changes
-RPC
----
+- gui#687 Load PSBTs using istreambuf_iterator rather than istream_iterator
+- gui#704 Correctly limit overview transaction list
-- The `deriveaddresses`, `getdescriptorinfo`, `importdescriptors` and `scantxoutset` commands now
- accept Miniscript expression within a `wsh()` descriptor. (#24148)
+### Miscellaneous
-- The `getaddressinfo`, `decodescript`, `listdescriptors` and `listunspent` commands may now output
- a Miniscript descriptor inside a `wsh()` where a `wsh(raw())` descriptor was previously returned. (#24148)
+- #26880 ci: replace Intel macOS CI job
+- #26924 refactor: Add missing includes to fix gcc-13 compile error
Credits
=======
Thanks to everyone who directly contributed to this release:
-- /dev/fd0
-- 0xb10c
-- Adam Jonas
-- akankshakashyap
-- Ali Sherief
-- amadeuszpawlik
-- Andreas Kouloumos
- Andrew Chow
-- Anthony Towns
-- Antoine Poinsot
-- Antoine Riard
-- Aurèle Oulès
-- avirgovi
-- Ayush Sharma
-- Baas
-- Ben Woosley
-- BrokenProgrammer
-- brunoerg
-- brydinh
-- Bushstar
-- Calvin Kim
-- CAnon
-- Carl Dong
-- chinggg
-- Cory Fields
-- Daniel Kraft
-- Daniela Brozzoni
-- darosior
-- Dave Scotese
-- David Bakin
-- dergoegge
-- dhruv
-- Dimitri
-- dontbyte
-- Duncan Dean
-- eugene
-- Eunoia
-- Fabian Jahr
-- furszy
-- Gleb Naumenko
-- glozow
-- Greg Weber
-- Gregory Sanders
-- gruve-p
- Hennadii Stepanov
-- hiago
-- Igor Bubelov
-- ishaanam
-- Jacob P.
-- Jadi
-- James O'Beirne
-- Janna
-- Jarol Rodriguez
-- Jeremy Rand
-- Jeremy Rubin
-- jessebarton
-- João Barbosa
-- John Newbery
-- Jon Atack
-- Josiah Baker
-- Karl-Johan Alm
-- KevinMusgrave
-- Kiminuo
-- klementtan
-- Kolby Moroz
-- kouloumos
-- Kristaps Kaupe
-- Larry Ruane
-- Luke Dashjr
-- MarcoFalke
-- Marnix
-- Martin Leitner-Ankerl
+- John Moffett
+- Marco Falke
- Martin Zumsande
-- Michael Dietz
-- Michael Folkson
+- Matthew Zipkin
- Michael Ford
-- Murch
-- mutatrum
-- muxator
-- Oskar Mendel
-- Pablo Greco
-- pasta
-- Patrick Strateman
-- Pavol Rusnak
-- Peter Bushnell
-- phyBrackets
-- Pieter Wuille
-- practicalswift
-- randymcmillan
-- Robert Spigler
-- Russell Yanofsky
-- S3RK
-- Samer Afach
- Sebastian Falbesoner
-- Seibart Nedor
-- Shashwat
-- Sjors Provoost
-- Smlep
-- sogoagain
-- Stacie
-- Stéphan Vuylsteke
-- Suhail Saqan
-- Suhas Daftuar
-- t-bast
-- TakeshiMusgrave
- Vasil Dimov
-- W. J. van der Laan
-- w0xlt
-- whiteh0rse
-- willcl-ark
-- William Casarin
-- Yancy Ribbens
As well as to everyone that helped with translations on
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).