doc: add release notes for 25.1rc1

This commit is contained in:
fanquake 2023-10-02 16:46:16 +01:00
parent 71aed7aa31
commit 10f3f813b2
No known key found for this signature in database
GPG key ID: 2EEB9F5CC09526C1

View file

@ -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/).
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).