diff options
author | fanquake <fanquake@gmail.com> | 2023-10-04 13:09:48 +0100 |
---|---|---|
committer | fanquake <fanquake@gmail.com> | 2023-10-04 13:10:16 +0100 |
commit | 167d3e2f16ca8d3ed8d31e71490ecf0ca220ac34 (patch) | |
tree | f7aef020b71d98d445c589afa64e5444887a291d | |
parent | 9f8d501cb88e25cbc80f80485d3da981bb26fa62 (diff) | |
parent | 10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d (diff) |
Merge bitcoin/bitcoin#28559: [25.1] Final changes for 25.1rc1v25.1rc1
10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d doc: add release notes for 25.1rc1 (fanquake)
71aed7aa31507220ca8b53a8d3c1b62a73a80c45 doc: update manual pages for 25.1rc1 (fanquake)
02f059c8199efbcbec47ff289f71ac30a5d7313d build: Bump version to 25.1rc1 (fanquake)
dc1fcec0260db8fa95d74d46d2e1b302e0a66782 doc: add 25.0 release notes (fanquake)
Pull request description:
Final changes to tag a `25.1rc1`.
Bumps version numbers, man pages, adds release notes etc.
ACKs for top commit:
dergoegge:
ACK 10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d
hebasto:
ACK 10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d, I have reviewed the code and it looks OK.
willcl-ark:
ACK 10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d
stickies-v:
ACK 10f3f813b251d16c86d0b41bbdd7b7ab4a22e00d
Tree-SHA512: 3e1c527dac06afb4c8e1e481055211f69aa0ed769ac242ed610d23d470bbc0c062227034d01876ba4a5fa836e953fb001e8b0d6bc026069d372d34b8a031fb25
-rw-r--r-- | configure.ac | 4 | ||||
-rw-r--r-- | doc/man/bitcoin-cli.1 | 6 | ||||
-rw-r--r-- | doc/man/bitcoin-qt.1 | 6 | ||||
-rw-r--r-- | doc/man/bitcoin-tx.1 | 6 | ||||
-rw-r--r-- | doc/man/bitcoin-util.1 | 6 | ||||
-rw-r--r-- | doc/man/bitcoin-wallet.1 | 6 | ||||
-rw-r--r-- | doc/man/bitcoind.1 | 6 | ||||
-rw-r--r-- | doc/release-notes.md | 308 | ||||
-rw-r--r-- | doc/release-notes/release-notes-25.0.md | 340 |
9 files changed, 398 insertions, 290 deletions
diff --git a/configure.ac b/configure.ac index 518f99e309..457366ed6f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,8 +1,8 @@ AC_PREREQ([2.69]) define(_CLIENT_VERSION_MAJOR, 25) -define(_CLIENT_VERSION_MINOR, 0) +define(_CLIENT_VERSION_MINOR, 1) define(_CLIENT_VERSION_BUILD, 0) -define(_CLIENT_VERSION_RC, 0) +define(_CLIENT_VERSION_RC, 1) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2023) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/doc/man/bitcoin-cli.1 b/doc/man/bitcoin-cli.1 index 6da5db7614..7841790eee 100644 --- a/doc/man/bitcoin-cli.1 +++ b/doc/man/bitcoin-cli.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIN-CLI "1" "May 2023" "bitcoin-cli v25.0.0" "User Commands" +.TH BITCOIN-CLI "1" "October 2023" "bitcoin-cli v25.1.0rc1" "User Commands" .SH NAME -bitcoin-cli \- manual page for bitcoin-cli v25.0.0 +bitcoin-cli \- manual page for bitcoin-cli v25.1.0rc1 .SH SYNOPSIS .B bitcoin-cli [\fI\,options\/\fR] \fI\,<command> \/\fR[\fI\,params\/\fR] \fI\,Send command to Bitcoin Core\/\fR @@ -15,7 +15,7 @@ bitcoin-cli \- manual page for bitcoin-cli v25.0.0 .B bitcoin-cli [\fI\,options\/\fR] \fI\,help <command> Get help for a command\/\fR .SH DESCRIPTION -Bitcoin Core RPC client version v25.0.0 +Bitcoin Core RPC client version v25.1.0rc1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-qt.1 b/doc/man/bitcoin-qt.1 index 6b3182763e..13a6d98827 100644 --- a/doc/man/bitcoin-qt.1 +++ b/doc/man/bitcoin-qt.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIN-QT "1" "May 2023" "bitcoin-qt v25.0.0" "User Commands" +.TH BITCOIN-QT "1" "October 2023" "bitcoin-qt v25.1.0rc1" "User Commands" .SH NAME -bitcoin-qt \- manual page for bitcoin-qt v25.0.0 +bitcoin-qt \- manual page for bitcoin-qt v25.1.0rc1 .SH SYNOPSIS .B bitcoin-qt [\fI\,command-line options\/\fR] .SH DESCRIPTION -Bitcoin Core version v25.0.0 +Bitcoin Core version v25.1.0rc1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-tx.1 b/doc/man/bitcoin-tx.1 index 23d80e57ca..8c034fbe04 100644 --- a/doc/man/bitcoin-tx.1 +++ b/doc/man/bitcoin-tx.1 @@ -1,7 +1,7 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIN-TX "1" "May 2023" "bitcoin-tx v25.0.0" "User Commands" +.TH BITCOIN-TX "1" "October 2023" "bitcoin-tx v25.1.0rc1" "User Commands" .SH NAME -bitcoin-tx \- manual page for bitcoin-tx v25.0.0 +bitcoin-tx \- manual page for bitcoin-tx v25.1.0rc1 .SH SYNOPSIS .B bitcoin-tx [\fI\,options\/\fR] \fI\,<hex-tx> \/\fR[\fI\,commands\/\fR] \fI\,Update hex-encoded bitcoin transaction\/\fR @@ -9,7 +9,7 @@ bitcoin-tx \- manual page for bitcoin-tx v25.0.0 .B bitcoin-tx [\fI\,options\/\fR] \fI\,-create \/\fR[\fI\,commands\/\fR] \fI\,Create hex-encoded bitcoin transaction\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-tx utility version v25.0.0 +Bitcoin Core bitcoin\-tx utility version v25.1.0rc1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-util.1 b/doc/man/bitcoin-util.1 index afdb57843b..00a3b537e5 100644 --- a/doc/man/bitcoin-util.1 +++ b/doc/man/bitcoin-util.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIN-UTIL "1" "May 2023" "bitcoin-util v25.0.0" "User Commands" +.TH BITCOIN-UTIL "1" "October 2023" "bitcoin-util v25.1.0rc1" "User Commands" .SH NAME -bitcoin-util \- manual page for bitcoin-util v25.0.0 +bitcoin-util \- manual page for bitcoin-util v25.1.0rc1 .SH SYNOPSIS .B bitcoin-util [\fI\,options\/\fR] [\fI\,commands\/\fR] \fI\,Do stuff\/\fR .SH DESCRIPTION -Bitcoin Core bitcoin\-util utility version v25.0.0 +Bitcoin Core bitcoin\-util utility version v25.1.0rc1 .SH OPTIONS .HP \-? diff --git a/doc/man/bitcoin-wallet.1 b/doc/man/bitcoin-wallet.1 index 02485a5d09..bca9c20ab3 100644 --- a/doc/man/bitcoin-wallet.1 +++ b/doc/man/bitcoin-wallet.1 @@ -1,9 +1,9 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIN-WALLET "1" "May 2023" "bitcoin-wallet v25.0.0" "User Commands" +.TH BITCOIN-WALLET "1" "October 2023" "bitcoin-wallet v25.1.0rc1" "User Commands" .SH NAME -bitcoin-wallet \- manual page for bitcoin-wallet v25.0.0 +bitcoin-wallet \- manual page for bitcoin-wallet v25.1.0rc1 .SH DESCRIPTION -Bitcoin Core bitcoin\-wallet version v25.0.0 +Bitcoin Core bitcoin\-wallet version v25.1.0rc1 .PP bitcoin\-wallet is an offline tool for creating and interacting with Bitcoin Core wallet files. By default bitcoin\-wallet will act on wallets in the default mainnet wallet directory in the datadir. diff --git a/doc/man/bitcoind.1 b/doc/man/bitcoind.1 index 5d9998ba6f..8a97064773 100644 --- a/doc/man/bitcoind.1 +++ b/doc/man/bitcoind.1 @@ -1,12 +1,12 @@ .\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3. -.TH BITCOIND "1" "May 2023" "bitcoind v25.0.0" "User Commands" +.TH BITCOIND "1" "October 2023" "bitcoind v25.1.0rc1" "User Commands" .SH NAME -bitcoind \- manual page for bitcoind v25.0.0 +bitcoind \- manual page for bitcoind v25.1.0rc1 .SH SYNOPSIS .B bitcoind [\fI\,options\/\fR] \fI\,Start Bitcoin Core\/\fR .SH DESCRIPTION -Bitcoin Core version v25.0.0 +Bitcoin Core version v25.1.0rc1 .SH OPTIONS .HP \-? diff --git a/doc/release-notes.md b/doc/release-notes.md index ee37c6a7c6..b27bfd0272 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -1,9 +1,9 @@ -25.0 Release Notes +25.1rc1 Release Notes ================== -Bitcoin Core version 25.0 is now available from: +Bitcoin Core version 25.1rc1 is now available from: - <https://bitcoincore.org/bin/bitcoin-core-25.0/> + <https://bitcoincore.org/bin/bitcoin-core-25.1/test.rc1> This release includes new features, various bug fixes and performance improvements, as well as updated translations. @@ -40,301 +40,69 @@ unsupported systems. Notable changes =============== -P2P and network changes ------------------------ +### P2P -- Transactions of non-witness size 65 and above are now allowed by mempool - and relay policy. This is to better reflect the actual afforded protections - against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265) +- #27626 Parallel compact block downloads, take 3 +- #27743 p2p: Unconditionally return when compact block status == READ_STATUS_FAILED -New RPCs --------- +### Fees -- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by - scanning all blockfilters in the given range. It can be used in combination with - the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note - that this functionality can only be used if a compact block filter index - (-blockfilterindex=1) has been constructed by the node. (#23549) +- #27622 Fee estimation: avoid serving stale fee estimate -Updated RPCs ------------- +### RPC -- All JSON-RPC methods accept a new [named - parameter](JSON-RPC-interface.md#parameter-passing) called `args` that can - contain positional parameter values. This is a convenience to allow some - parameter values to be passed by name without having to name every value. The - python test framework and `bitcoin-cli` tool both take advantage of this, so - for example: +- #27727 rpc: Fix invalid bech32 address handling -```sh -bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1 -``` +### Rest -Can now be shortened to: +- #27853 rest: fix crash error when calling /deploymentinfo +- #28551 http: bugfix: allow server shutdown in case of remote client disconnection -```sh -bitcoin-cli -named createwallet mywallet load_on_startup=1 -``` +### Wallet -- The `verifychain` RPC will now return `false` if the checks didn't fail, - but couldn't be completed at the desired depth and level. This could be due - to missing data while pruning, due to an insufficient dbcache or due to - the node being shutdown before the call could finish. (#25574) +- #28038 wallet: address book migration bug fixes +- #28067 descriptors: do not return top-level only funcs as sub descriptors +- #28125 wallet: bugfix, disallow migration of invalid scripts +- #28542 wallet: Check for uninitialized last processed and conflicting heights in MarkConflicted -- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`. - Any transaction containing an unspendable output with a value greater than `maxburnamount` will - not be submitted. At present, the outputs deemed unspendable are those with scripts that begin - with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size, - and scripts that contain invalid opcodes. +### Build -- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result: - "effective-feerate" is the feerate including fees and sizes of transactions validated together if - package validation was used, and also includes any modified fees from prioritisetransaction. The - "effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used - in the effective-feerate (#26646). +- #27724 build: disable boost multi index safe mode in debug mode +- #28097 depends: xcb-proto 1.15.2 +- #28543 build, macos: Fix qt package build with new Xcode 15 linker +- #28571 depends: fix unusable memory_resource in macos qt build -- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking - information. (#27037) +### Gui -- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible - P2WSH scripts. (#24149) +- gui#751 macOS, do not process actions during shutdown -Changes to wallet related RPCs can be found in the Wallet section below. +### Miscellaneous -Build System ------------- +- #28452 Do not use std::vector = {} to release memory -- The `--enable-upnp-default` and `--enable-natpmp-default` options - have been removed. If you want to use port mapping, you can - configure it using a .conf file, or by passing the relevant - options at runtime. (#26896) +### CI -Updated settings ----------------- - -- If the `-checkblocks` or `-checklevel` options are explicitly provided by the -user, but the verification checks cannot be completed due to an insufficient -dbcache, Bitcoin Core will now return an error at startup. (#25574) - -- Ports specified in `-port` and `-rpcport` options are now validated at startup. - Values that previously worked and were considered valid can now result in errors. (#22087) - -- Setting `-blocksonly` will now reduce the maximum mempool memory - to 5MB (users may still use `-maxmempool` to override). Previously, - the default 300MB would be used, leading to unexpected memory usage - for users running with `-blocksonly` expecting it to eliminate - mempool memory usage. - - As unused mempool memory is shared with dbcache, this also reduces - the dbcache size for users running with `-blocksonly`, potentially - impacting performance. -- Setting `-maxconnections=0` will now disable `-dnsseed` - and `-listen` (users may still set them to override). - -Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. - -New settings ------------- - -- The `shutdownnotify` option is used to specify a command to execute synchronously -before Bitcoin Core has begun its shutdown sequence. (#23395) - - -Wallet ------- - -- The `minconf` option, which allows a user to specify the minimum number -of confirmations a UTXO being spent has, and the `maxconf` option, -which allows specifying the maximum number of confirmations, have been -added to the following RPCs in #25375: - - `fundrawtransaction` - - `send` - - `walletcreatefundedpsbt` - - `sendall` - -- Added a new `next_index` field in the response in `listdescriptors` to - have the same format as `importdescriptors` (#26194) - -- RPC `listunspent` now has a new argument `include_immature_coinbase` - to include coinbase UTXOs that don't meet the minimum spendability - depth requirement (which before were silently skipped). (#25730) - -- Rescans for descriptor wallets are now significantly faster if compact - block filters (BIP158) are available. Since those are not constructed - by default, the configuration option "-blockfilterindex=1" has to be - provided to take advantage of the optimization. This improves the - performance of the RPC calls `rescanblockchain`, `importdescriptors` - and `restorewallet`. (#25957) - -- RPC `unloadwallet` now fails if a rescan is in progress. (#26618) - -- Wallet passphrases may now contain null characters. - Prior to this change, only characters up to the first - null character were recognized and accepted. (#27068) - -- Address Purposes strings are now restricted to the currently known values of "send", - "receive", and "refund". Wallets that have unrecognized purpose strings will have - loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose - is requested. (#27217) - -- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the - "warning" string field is deprecated in favor of a "warnings" field that - returns a JSON array of strings to better handle multiple warning messages and - for consistency with other wallet RPCs. The "warning" field will be fully - removed from these RPCs in v26. It can be temporarily re-enabled during the - deprecation period by launching bitcoind with the configuration option - `-deprecatedrpc=walletwarningfield`. (#27279) - -- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149) - -GUI changes ------------ - -- The "Mask values" is a persistent option now. (gui#701) -- The "Mask values" option affects the "Transaction" view now, in addition to the - "Overview" one. (gui#708) - -REST ----- - -- A new `/rest/deploymentinfo` endpoint has been added for fetching various - state info regarding deployments of consensus changes. (#25412) - -Binary verification ----- - -- The binary verification script has been updated. In previous releases it - would verify that the binaries had been signed with a single "release key". - In this release and moving forward it will verify that the binaries are - signed by a _threshold of trusted keys_. For more details and - examples, see: - https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md - (#27358) - -Low-level changes -================= - -RPC ---- - -- The JSON-RPC server now rejects requests where a parameter is specified multiple - times with the same name, instead of silently overwriting earlier parameter values - with later ones. (#26628) -- RPC `listsinceblock` now accepts an optional `label` argument - to fetch incoming transactions having the specified label. (#25934) -- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods - allowed non-boolean and non-null values to be passed as boolean parameters. - Any string, number, array, or object value that was passed would be treated - as false. After this change, passing any value except `true`, `false`, or - `null` now triggers a JSON value is not of expected type error. (#26213) +- #27777 ci: Prune dangling images on RESTART_CI_DOCKER_BEFORE_RUN +- #27834 ci: Nuke Android APK task, Use credits for tsan +- #27844 ci: Use podman stop over podman kill +- #27886 ci: Switch to amd64 container in "ARM" task Credits ======= Thanks to everyone who directly contributed to this release: -- 0xb10c -- 721217.xyz -- @RandyMcMillan -- amadeuszpawlik -- Amiti Uttarwar +- Abubakar Sadiq Ismail - Andrew Chow -- Andrew Toth -- Anthony Towns -- Antoine Poinsot -- Aurèle Oulès -- Ben Woosley -- Bitcoin Hodler -- brunoerg -- Bushstar -- Carl Dong -- Chris Geihsler -- Cory Fields -- David Gumberg -- dergoegge -- Dhruv Mehta -- Dimitris Tsapakidis -- dougEfish -- Douglas Chimento -- ekzyis -- Elichai Turkel -- Ethan Heilman -- Fabian Jahr -- FractalEncrypt -- furszy -- Gleb Naumenko -- glozow -- Greg Sanders +- Bruno Garcia +- Gregory Sanders - Hennadii Stepanov -- hernanmarino -- ishaanam -- ismaelsadeeq -- James O'Beirne -- jdjkelly@gmail.com -- Jeff Ruane -- Jeffrey Czyz -- Jeremy Rubin -- Jesse Barton -- João Barbosa -- JoaoAJMatos -- John Moffett -- Jon Atack -- Jonas Schnelli -- jonatack -- Joshua Kelly -- josibake -- Juan Pablo Civile -- kdmukai -- klementtan -- Kolby ML -- kouloumos -- Kristaps Kaupe -- laanwj -- Larry Ruane -- Leonardo Araujo -- Leonardo Lazzaro -- Luke Dashjr - MacroFake -- MarcoFalke -- Martin Leitner-Ankerl -- Martin Zumsande -- Matt Whitlock -- Matthew Zipkin +- Matias Furszyfer - Michael Ford -- Miles Liu -- mruddy -- Murray Nesbitt -- muxator -- omahs -- pablomartin4btc -- Pasta - Pieter Wuille -- Pttn -- Randall Naar -- Riahiamirreza -- roconnor-blockstream -- Russell O'Connor -- Ryan Ofsky -- S3RK -- Sebastian Falbesoner -- Seibart Nedor -- sinetek -- Sjors Provoost -- Skuli Dulfari -- SomberNight -- Stacie Waleyko - stickies-v -- stratospher -- Suhas Daftuar -- Suriyaa Sundararuban -- TheCharlatan -- Vasil Dimov -- Vasil Stoyanov -- virtu -- w0xlt -- willcl-ark -- yancy -- Yusuf Sahin HAMZA +- Will Clark As well as to everyone that helped with translations on -[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
\ No newline at end of file +[Transifex](https://www.transifex.com/bitcoin/bitcoin/). diff --git a/doc/release-notes/release-notes-25.0.md b/doc/release-notes/release-notes-25.0.md new file mode 100644 index 0000000000..919cb3b2f3 --- /dev/null +++ b/doc/release-notes/release-notes-25.0.md @@ -0,0 +1,340 @@ +25.0 Release Notes +================== + +Bitcoin Core version 25.0 is now available from: + + <https://bitcoincore.org/bin/bitcoin-core-25.0/> + +This release includes new features, various bug fixes and performance +improvements, as well as updated translations. + +Please report bugs using the issue tracker at GitHub: + + <https://github.com/bitcoin/bitcoin/issues> + +To receive security and update notifications, please subscribe to: + + <https://bitcoincore.org/en/list/announcements/join/> + +How to Upgrade +============== + +If you are running an older version, shut it down. Wait until it has completely +shut down (which might take a few minutes in some cases), then run the +installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS) +or `bitcoind`/`bitcoin-qt` (on Linux). + +Upgrading directly from a version of Bitcoin Core that has reached its EOL is +possible, but it might take some time if the data directory needs to be migrated. Old +wallet versions of Bitcoin Core are generally supported. + +Compatibility +============== + +Bitcoin Core is supported and extensively tested on operating systems +using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin +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. + +Notable changes +=============== + +P2P and network changes +----------------------- + +- Transactions of non-witness size 65 bytes and above are now allowed by mempool + and relay policy. This is to better reflect the actual afforded protections + against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265) + +New RPCs +-------- + +- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by + scanning all blockfilters in the given range. It can be used in combination with + the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note + that this functionality can only be used if a compact block filter index + (-blockfilterindex=1) has been constructed by the node. (#23549) + +Updated RPCs +------------ + +- All JSON-RPC methods accept a new [named + parameter](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#parameter-passing) called `args` that can + contain positional parameter values. This is a convenience to allow some + parameter values to be passed by name without having to name every value. The + python test framework and `bitcoin-cli` tool both take advantage of this, so + for example: + +```sh +bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1 +``` + +Can now be shortened to: + +```sh +bitcoin-cli -named createwallet mywallet load_on_startup=1 +``` + +- The `verifychain` RPC will now return `false` if the checks didn't fail, + but couldn't be completed at the desired depth and level. This could be due + to missing data while pruning, due to an insufficient dbcache or due to + the node being shutdown before the call could finish. (#25574) + +- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`. + Any transaction containing an unspendable output with a value greater than `maxburnamount` will + not be submitted. At present, the outputs deemed unspendable are those with scripts that begin + with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size, + and scripts that contain invalid opcodes. + +- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result: + "effective-feerate" is the feerate including fees and sizes of transactions validated together if + package validation was used, and also includes any modified fees from prioritisetransaction. The + "effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used + in the effective-feerate (#26646). + +- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking + information. (#27037) + +- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible + P2WSH scripts. (#24149) + +Changes to wallet related RPCs can be found in the Wallet section below. + +Build System +------------ + +- The `--enable-upnp-default` and `--enable-natpmp-default` options + have been removed. If you want to use port mapping, you can + configure it using a .conf file, or by passing the relevant + options at runtime. (#26896) + +Updated settings +---------------- + +- If the `-checkblocks` or `-checklevel` options are explicitly provided by the +user, but the verification checks cannot be completed due to an insufficient +dbcache, Bitcoin Core will now return an error at startup. (#25574) + +- Ports specified in `-port` and `-rpcport` options are now validated at startup. + Values that previously worked and were considered valid can now result in errors. (#22087) + +- Setting `-blocksonly` will now reduce the maximum mempool memory + to 5MB (users may still use `-maxmempool` to override). Previously, + the default 300MB would be used, leading to unexpected memory usage + for users running with `-blocksonly` expecting it to eliminate + mempool memory usage. + + As unused mempool memory is shared with dbcache, this also reduces + the dbcache size for users running with `-blocksonly`, potentially + impacting performance. +- Setting `-maxconnections=0` will now disable `-dnsseed` + and `-listen` (users may still set them to override). + +Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. + +New settings +------------ + +- The `shutdownnotify` option is used to specify a command to execute synchronously +before Bitcoin Core has begun its shutdown sequence. (#23395) + + +Wallet +------ + +- The `minconf` option, which allows a user to specify the minimum number +of confirmations a UTXO being spent has, and the `maxconf` option, +which allows specifying the maximum number of confirmations, have been +added to the following RPCs in #25375: + - `fundrawtransaction` + - `send` + - `walletcreatefundedpsbt` + - `sendall` + +- Added a new `next_index` field in the response in `listdescriptors` to + have the same format as `importdescriptors` (#26194) + +- RPC `listunspent` now has a new argument `include_immature_coinbase` + to include coinbase UTXOs that don't meet the minimum spendability + depth requirement (which before were silently skipped). (#25730) + +- Rescans for descriptor wallets are now significantly faster if compact + block filters (BIP158) are available. Since those are not constructed + by default, the configuration option "-blockfilterindex=1" has to be + provided to take advantage of the optimization. This improves the + performance of the RPC calls `rescanblockchain`, `importdescriptors` + and `restorewallet`. (#25957) + +- RPC `unloadwallet` now fails if a rescan is in progress. (#26618) + +- Wallet passphrases may now contain null characters. + Prior to this change, only characters up to the first + null character were recognized and accepted. (#27068) + +- Address Purposes strings are now restricted to the currently known values of "send", + "receive", and "refund". Wallets that have unrecognized purpose strings will have + loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose + is requested. (#27217) + +- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the + "warning" string field is deprecated in favor of a "warnings" field that + returns a JSON array of strings to better handle multiple warning messages and + for consistency with other wallet RPCs. The "warning" field will be fully + removed from these RPCs in v26. It can be temporarily re-enabled during the + deprecation period by launching bitcoind with the configuration option + `-deprecatedrpc=walletwarningfield`. (#27279) + +- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149) + +GUI changes +----------- + +- The "Mask values" is a persistent option now. (gui#701) +- The "Mask values" option affects the "Transaction" view now, in addition to the + "Overview" one. (gui#708) + +REST +---- + +- A new `/rest/deploymentinfo` endpoint has been added for fetching various + state info regarding deployments of consensus changes. (#25412) + +Binary verification +---- + +- The binary verification script has been updated. In previous releases it + would verify that the binaries had been signed with a single "release key". + In this release and moving forward it will verify that the binaries are + signed by a _threshold of trusted keys_. For more details and + examples, see: + https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md + (#27358) + +Low-level changes +================= + +RPC +--- + +- The JSON-RPC server now rejects requests where a parameter is specified multiple + times with the same name, instead of silently overwriting earlier parameter values + with later ones. (#26628) +- RPC `listsinceblock` now accepts an optional `label` argument + to fetch incoming transactions having the specified label. (#25934) +- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods + allowed non-boolean and non-null values to be passed as boolean parameters. + Any string, number, array, or object value that was passed would be treated + as false. After this change, passing any value except `true`, `false`, or + `null` now triggers a JSON value is not of expected type error. (#26213) + +Credits +======= + +Thanks to everyone who directly contributed to this release: + +- 0xb10c +- 721217.xyz +- @RandyMcMillan +- amadeuszpawlik +- Amiti Uttarwar +- Andrew Chow +- Andrew Toth +- Anthony Towns +- Antoine Poinsot +- Aurèle Oulès +- Ben Woosley +- Bitcoin Hodler +- brunoerg +- Bushstar +- Carl Dong +- Chris Geihsler +- Cory Fields +- David Gumberg +- dergoegge +- Dhruv Mehta +- Dimitris Tsapakidis +- dougEfish +- Douglas Chimento +- ekzyis +- Elichai Turkel +- Ethan Heilman +- Fabian Jahr +- FractalEncrypt +- furszy +- Gleb Naumenko +- glozow +- Greg Sanders +- Hennadii Stepanov +- hernanmarino +- ishaanam +- ismaelsadeeq +- James O'Beirne +- jdjkelly@gmail.com +- Jeff Ruane +- Jeffrey Czyz +- Jeremy Rubin +- Jesse Barton +- João Barbosa +- JoaoAJMatos +- John Moffett +- Jon Atack +- Jonas Schnelli +- jonatack +- Joshua Kelly +- josibake +- Juan Pablo Civile +- kdmukai +- klementtan +- Kolby ML +- kouloumos +- Kristaps Kaupe +- laanwj +- Larry Ruane +- Leonardo Araujo +- Leonardo Lazzaro +- Luke Dashjr +- MacroFake +- MarcoFalke +- Martin Leitner-Ankerl +- Martin Zumsande +- Matt Whitlock +- Matthew Zipkin +- Michael Ford +- Miles Liu +- mruddy +- Murray Nesbitt +- muxator +- omahs +- pablomartin4btc +- Pasta +- Pieter Wuille +- Pttn +- Randall Naar +- Riahiamirreza +- roconnor-blockstream +- Russell O'Connor +- Ryan Ofsky +- S3RK +- Sebastian Falbesoner +- Seibart Nedor +- sinetek +- Sjors Provoost +- Skuli Dulfari +- SomberNight +- Stacie Waleyko +- stickies-v +- stratospher +- Suhas Daftuar +- Suriyaa Sundararuban +- TheCharlatan +- Vasil Dimov +- Vasil Stoyanov +- virtu +- w0xlt +- willcl-ark +- yancy +- Yusuf Sahin HAMZA + +As well as to everyone that helped with translations on +[Transifex](https://www.transifex.com/bitcoin/bitcoin/).
\ No newline at end of file |