Skip to content

Commit e88a52e

Browse files
committed
Merge bitcoin/bitcoin#24973: doc: Add 23.0 release notes
2abfb6c doc: Add 23.0 release notes (laanwj) Pull request description: Add 23.0 release notes from the wiki. We forgot to move these back to the branch, so they go direct-to-master. Only change from the wiki is to add the credits. ACKs for top commit: Kvaciral: re-ACK 2abfb6c dunxen: Re-ACK 2abfb6c Tree-SHA512: 8541cb1d258ff9a3c6a42875434ae30638343c3192b268b53b92c8abc7a09685d778c3e44d08aa10da71f87a24933c0485dbc5d32c509c699d30886d57a45aff
2 parents 10a626a + 2abfb6c commit e88a52e

File tree

1 file changed

+373
-0
lines changed

1 file changed

+373
-0
lines changed
Lines changed: 373 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,373 @@
1+
23.0 Release Notes
2+
==================
3+
4+
Bitcoin Core version 23.0 is now available from:
5+
6+
<https://bitcoincore.org/bin/bitcoin-core-23.0/>
7+
8+
This release includes new features, various bug fixes and performance
9+
improvements, as well as updated translations.
10+
11+
Please report bugs using the issue tracker at GitHub:
12+
13+
<https://github.com/bitcoin/bitcoin/issues>
14+
15+
To receive security and update notifications, please subscribe to:
16+
17+
<https://bitcoincore.org/en/list/announcements/join/>
18+
19+
How to Upgrade
20+
==============
21+
22+
If you are running an older version, shut it down. Wait until it has completely
23+
shut down (which might take a few minutes in some cases), then run the
24+
installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on Mac)
25+
or `bitcoind`/`bitcoin-qt` (on Linux).
26+
27+
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
28+
possible, but it might take some time if the data directory needs to be migrated. Old
29+
wallet versions of Bitcoin Core are generally supported.
30+
31+
Compatibility
32+
==============
33+
34+
Bitcoin Core is supported and extensively tested on operating systems
35+
using the Linux kernel, macOS 10.15+, and Windows 7 and newer. Bitcoin
36+
Core should also work on most other Unix-like systems but is not as
37+
frequently tested on them. It is not recommended to use Bitcoin Core on
38+
unsupported systems.
39+
40+
Notable changes
41+
===============
42+
43+
P2P and network changes
44+
-----------------------
45+
46+
- A bitcoind node will no longer rumour addresses to inbound peers by default.
47+
They will become eligible for address gossip after sending an ADDR, ADDRV2,
48+
or GETADDR message. (#21528)
49+
50+
- Before this release, Bitcoin Core had a strong preference to try to connect only to peers that listen on port 8333. As a result of that, Bitcoin nodes listening on non-standard ports would likely not get any Bitcoin Core peers connecting to them. This preference has been removed. (#23542)
51+
52+
- Full support has been added for the CJDNS network. See the new option `-cjdnsreachable` and [doc/cjdns.md](https://github.com/bitcoin/bitcoin/tree/23.x/doc/cjdns.md) (#23077)
53+
54+
Fee estimation changes
55+
----------------------
56+
57+
- Fee estimation now takes the feerate of replacement (RBF) transactions into
58+
account. (#22539)
59+
60+
Rescan startup parameter removed
61+
--------------------------------
62+
63+
The `-rescan` startup parameter has been removed. Wallets which require
64+
rescanning due to corruption will still be rescanned on startup.
65+
Otherwise, please use the `rescanblockchain` RPC to trigger a rescan. (#23123)
66+
67+
Tracepoints and Userspace, Statically Defined Tracing support
68+
-------------------------------------------------------------
69+
70+
Bitcoin Core release binaries for Linux now include experimental tracepoints which
71+
act as an interface for process-internal events. These can be used for review,
72+
debugging, monitoring, and more. The tracepoint API is semi-stable. While the API
73+
is tested, process internals might change between releases requiring changes to the
74+
tracepoints. Information about the existing tracepoints can be found under
75+
[doc/tracing.md](https://github.com/bitcoin/bitcoin/blob/23.x/doc/tracing.md) and
76+
usage examples are provided in [contrib/tracing/](https://github.com/bitcoin/bitcoin/tree/23.x/contrib/tracing).
77+
78+
Updated RPCs
79+
------------
80+
81+
- The `validateaddress` RPC now returns an `error_locations` array for invalid
82+
addresses, with the indices of invalid character locations in the address (if
83+
known). For example, this will attempt to locate up to two Bech32 errors, and
84+
return their locations if successful. Success and correctness are only guaranteed
85+
if fewer than two substitution errors have been made.
86+
The error message returned in the `error` field now also returns more specific
87+
errors when decoding fails. (#16807)
88+
89+
- The `-deprecatedrpc=addresses` configuration option has been removed. RPCs
90+
`gettxout`, `getrawtransaction`, `decoderawtransaction`, `decodescript`,
91+
`gettransaction verbose=true` and REST endpoints `/rest/tx`, `/rest/getutxos`,
92+
`/rest/block` no longer return the `addresses` and `reqSigs` fields, which
93+
were previously deprecated in 22.0. (#22650)
94+
- The `getblock` RPC command now supports verbosity level 3 containing transaction inputs'
95+
`prevout` information. The existing `/rest/block/` REST endpoint is modified to contain
96+
this information too. Every `vin` field will contain an additional `prevout` subfield
97+
describing the spent output. `prevout` contains the following keys:
98+
- `generated` - true if the spent coins was a coinbase.
99+
- `height`
100+
- `value`
101+
- `scriptPubKey`
102+
103+
- The top-level fee fields `fee`, `modifiedfee`, `ancestorfees` and `descendantfees`
104+
returned by RPCs `getmempoolentry`,`getrawmempool(verbose=true)`,
105+
`getmempoolancestors(verbose=true)` and `getmempooldescendants(verbose=true)`
106+
are deprecated and will be removed in the next major version (use
107+
`-deprecated=fees` if needed in this version). The same fee fields can be accessed
108+
through the `fees` object in the result. WARNING: deprecated
109+
fields `ancestorfees` and `descendantfees` are denominated in sats, whereas all
110+
fields in the `fees` object are denominated in BTC. (#22689)
111+
112+
- Both `createmultisig` and `addmultisigaddress` now include a `warnings`
113+
field, which will show a warning if a non-legacy address type is requested
114+
when using uncompressed public keys. (#23113)
115+
116+
Changes to wallet related RPCs can be found in the Wallet section below.
117+
118+
New RPCs
119+
--------
120+
121+
- Information on soft fork status has been moved from `getblockchaininfo`
122+
to the new `getdeploymentinfo` RPC which allows querying soft fork status at any
123+
block, rather than just at the chain tip. Inclusion of soft fork
124+
status in `getblockchaininfo` can currently be restored using the
125+
configuration `-deprecatedrpc=softforks`, but this will be removed in
126+
a future release. Note that in either case, the `status` field
127+
now reflects the status of the current block rather than the next
128+
block. (#23508)
129+
130+
Files
131+
-----
132+
133+
* On startup, the list of banned hosts and networks (via `setban` RPC) in
134+
`banlist.dat` is ignored and only `banlist.json` is considered. Bitcoin Core
135+
version 22.x is the only version that can read `banlist.dat` and also write
136+
it to `banlist.json`. If `banlist.json` already exists, version 22.x will not
137+
try to translate the `banlist.dat` into json. After an upgrade, `listbanned`
138+
can be used to double check the parsed entries. (#22570)
139+
140+
Updated settings
141+
----------------
142+
143+
- In previous releases, the meaning of the command line option
144+
`-persistmempool` (without a value provided) incorrectly disabled mempool
145+
persistence. `-persistmempool` is now treated like other boolean options to
146+
mean `-persistmempool=1`. Passing `-persistmempool=0`, `-persistmempool=1`
147+
and `-nopersistmempool` is unaffected. (#23061)
148+
149+
- `-maxuploadtarget` now allows human readable byte units [k|K|m|M|g|G|t|T].
150+
E.g. `-maxuploadtarget=500g`. No whitespace, +- or fractions allowed.
151+
Default is `M` if no suffix provided. (#23249)
152+
153+
- If `-proxy=` is given together with `-noonion` then the provided proxy will
154+
not be set as a proxy for reaching the Tor network. So it will not be
155+
possible to open manual connections to the Tor network for example with the
156+
`addnode` RPC. To mimic the old behavior use `-proxy=` together with
157+
`-onlynet=` listing all relevant networks except `onion`. (#22834)
158+
159+
Tools and Utilities
160+
-------------------
161+
162+
- Update `-getinfo` to return data in a user-friendly format that also reduces vertical space. (#21832)
163+
164+
- CLI `-addrinfo` now returns a single field for the number of `onion` addresses
165+
known to the node instead of separate `torv2` and `torv3` fields, as support
166+
for Tor V2 addresses was removed from Bitcoin Core in 22.0. (#22544)
167+
168+
Wallet
169+
------
170+
171+
- Descriptor wallets are now the default wallet type. Newly created wallets
172+
will use descriptors unless `descriptors=false` is set during `createwallet`, or
173+
the `Descriptor wallet` checkbox is unchecked in the GUI.
174+
175+
Note that wallet RPC commands like `importmulti` and `dumpprivkey` cannot be
176+
used with descriptor wallets, so if your client code relies on these commands
177+
without specifying `descriptors=false` during wallet creation, you will need
178+
to update your code.
179+
180+
- Newly created descriptor wallets will contain an automatically generated `tr()`
181+
descriptor which allows for creating single key Taproot receiving addresses.
182+
183+
- `upgradewallet` will now automatically flush the keypool if upgrading
184+
from a non-HD wallet to an HD wallet, to immediately start using the
185+
newly-generated HD keys. (#23093)
186+
187+
- a new RPC `newkeypool` has been added, which will flush (entirely
188+
clear and refill) the keypool. (#23093)
189+
190+
- `listunspent` now includes `ancestorcount`, `ancestorsize`, and
191+
`ancestorfees` for each transaction output that is still in the mempool.
192+
(#12677)
193+
194+
- `lockunspent` now optionally takes a third parameter, `persistent`, which
195+
causes the lock to be written persistently to the wallet database. This
196+
allows UTXOs to remain locked even after node restarts or crashes. (#23065)
197+
198+
- `receivedby` RPCs now include coinbase transactions. Previously, the
199+
following wallet RPCs excluded coinbase transactions: `getreceivedbyaddress`,
200+
`getreceivedbylabel`, `listreceivedbyaddress`, `listreceivedbylabel`. This
201+
release changes this behaviour and returns results accounting for received
202+
coins from coinbase outputs. The previous behaviour can be restored using the
203+
configuration `-deprecatedrpc=exclude_coinbase`, but may be removed in a
204+
future release. (#14707)
205+
206+
- A new option in the same `receivedby` RPCs, `include_immature_coinbase`
207+
(default=`false`), determines whether to account for immature coinbase
208+
transactions. Immature coinbase transactions are coinbase transactions that
209+
have 100 or fewer confirmations, and are not spendable. (#14707)
210+
211+
GUI changes
212+
-----------
213+
214+
- UTXOs which are locked via the GUI are now stored persistently in the
215+
wallet database, so are not lost on node shutdown or crash. (#23065)
216+
217+
- The Bech32 checkbox has been replaced with a dropdown for all address types, including the new Bech32m (BIP-350) standard for Taproot enabled wallets.
218+
219+
Low-level changes
220+
=================
221+
222+
RPC
223+
---
224+
225+
- `getblockchaininfo` now returns a new `time` field, that provides the chain tip time. (#22407)
226+
227+
Tests
228+
-----
229+
230+
- For the `regtest` network the activation heights of several softforks were
231+
set to block height 1. They can be changed by the runtime setting
232+
`-testactivationheight=name@height`. (#22818)
233+
234+
Credits
235+
=======
236+
237+
Thanks to everyone who directly contributed to this release:
238+
239+
- 0xb10c
240+
- 0xree
241+
- Aaron Clauson
242+
- Adrian-Stefan Mares
243+
- agroce
244+
- aitorjs
245+
- Alex Groce
246+
- amadeuszpawlik
247+
- Amiti Uttarwar
248+
- Andrew Chow
249+
- Andrew Poelstra
250+
- Andrew Toth
251+
- anouar kappitou
252+
- Anthony Towns
253+
- Antoine Poinsot
254+
- Arnab Sen
255+
- Ben Woosley
256+
- benthecarman
257+
- Bitcoin Hodler
258+
- BitcoinTsunami
259+
- brianddk
260+
- Bruno Garcia
261+
- CallMeMisterOwl
262+
- Calvin Kim
263+
- Carl Dong
264+
- Cory Fields
265+
- Cuong V. Nguyen
266+
- Darius Parvin
267+
- Dhruv Mehta
268+
- Dimitri Deijs
269+
- Dimitris Apostolou
270+
- Dmitry Goncharov
271+
- Douglas Chimento
272+
- eugene
273+
- Fabian Jahr
274+
- fanquake
275+
- Florian Baumgartl
276+
- fyquah
277+
- Gleb Naumenko
278+
- glozow
279+
- Gregory Sanders
280+
- Heebs
281+
- Hennadii Stepanov
282+
- hg333
283+
- HiLivin
284+
- Igor Cota
285+
- Jadi
286+
- James O'Beirne
287+
- Jameson Lopp
288+
- Jarol Rodriguez
289+
- Jeremy Rand
290+
- Jeremy Rubin
291+
- Joan Karadimov
292+
- John Newbery
293+
- Jon Atack
294+
- João Barbosa
295+
- josibake
296+
- junderw
297+
- Karl-Johan Alm
298+
- katesalazar
299+
- Kennan Mell
300+
- Kiminuo
301+
- Kittywhiskers Van Gogh
302+
- Klement Tan
303+
- Kristaps Kaupe
304+
- Kuro
305+
- Larry Ruane
306+
- lsilva01
307+
- lucash-dev
308+
- Luke Dashjr
309+
- MarcoFalke
310+
- Martin Leitner-Ankerl
311+
- Martin Zumsande
312+
- Matt Corallo
313+
- Matt Whitlock
314+
- MeshCollider
315+
- Michael Dietz
316+
- Murch
317+
- naiza
318+
- Nathan Garabedian
319+
- Nelson Galdeman
320+
- NikhilBartwal
321+
- Niklas Gögge
322+
- node01
323+
- nthumann
324+
- Pasta
325+
- Patrick Kamin
326+
- Pavel Safronov
327+
- Pavol Rusnak
328+
- Perlover
329+
- Pieter Wuille
330+
- practicalswift
331+
- pradumnasaraf
332+
- pranabp-bit
333+
- Prateek Sancheti
334+
- Prayank
335+
- Rafael Sadowski
336+
- rajarshimaitra
337+
- randymcmillan
338+
- ritickgoenka
339+
- Rob Fielding
340+
- Rojar Smith
341+
- Russell Yanofsky
342+
- S3RK
343+
- Saibato
344+
- Samuel Dobson
345+
- sanket1729
346+
- seaona
347+
- Sebastian Falbesoner
348+
- sh15h4nk
349+
- Shashwat
350+
- Shorya
351+
- ShubhamPalriwala
352+
- Shubhankar Gambhir
353+
- Sjors Provoost
354+
- sogoagain
355+
- sstone
356+
- stratospher
357+
- Suriyaa Rocky Sundararuban
358+
- Taeik Lim
359+
- TheCharlatan
360+
- Tim Ruffing
361+
- Tobin Harding
362+
- Troy Giorshev
363+
- Tyler Chambers
364+
- Vasil Dimov
365+
- W. J. van der Laan
366+
- w0xlt
367+
- willcl-ark
368+
- William Casarin
369+
- zealsham
370+
- Zero-1729
371+
372+
As well as to everyone that helped with translations on
373+
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

0 commit comments

Comments
 (0)