Skip to content

Commit 1d9da8d

Browse files
committed
Merge bitcoin/bitcoin#29023: doc: add historical release notes for 26.0
ca59375 doc: Missing additions to 26.0 release notes (fanquake) 7d4e47d doc: add historical release notes for 26.0 (fanquake) 8df4aaa doc: add minimum required Linux Kernel to release-notes (fanquake) Pull request description: Bins are now up, used for GH release etc. ACKs for top commit: willcl-ark: ACK ca59375 achow101: ACK ca59375 Tree-SHA512: 1fefd857092412231215dc72b5d79b2a7828a8c74aa6cb19a7dbc3c3b77feace3ce7fa89d517b4ce25ea41ed84e7ca4ba840d0923b97bf8f6b40b27ad96affa9
2 parents fcdb39d + ca59375 commit 1d9da8d

File tree

2 files changed

+359
-2
lines changed

2 files changed

+359
-2
lines changed

doc/release-notes-empty-template.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,9 @@ Compatibility
3636
==============
3737

3838
Bitcoin Core is supported and extensively tested on operating systems
39-
using the Linux kernel, macOS 11.0+, and Windows 7 and newer. Bitcoin
39+
using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin
4040
Core should also work on most other Unix-like systems but is not as
41-
frequently tested on them. It is not recommended to use Bitcoin Core on
41+
frequently tested on them. It is not recommended to use Bitcoin Core on
4242
unsupported systems.
4343

4444
Notable changes
Lines changed: 357 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,357 @@
1+
26.0 Release Notes
2+
==================
3+
4+
Bitcoin Core version 26.0 is now available from:
5+
6+
<https://bitcoincore.org/bin/bitcoin-core-26.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 macOS)
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 11.0+, 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+
- Experimental support for the v2 transport protocol defined in
47+
[BIP324](https://github.com/bitcoin/bips/blob/master/bip-0324.mediawiki) was added.
48+
It is off by default, but when enabled using `-v2transport` it will be negotiated
49+
on a per-connection basis with other peers that support it too. The existing
50+
v1 transport protocol remains fully supported.
51+
52+
- Nodes with multiple reachable networks will actively try to have at least one
53+
outbound connection to each network. This improves individual resistance to
54+
eclipse attacks and network level resistance to partition attacks. Users no
55+
longer need to perform active measures to ensure being connected to multiple
56+
enabled networks. (#27213)
57+
58+
Pruning
59+
-------
60+
61+
- When using assumeutxo with `-prune`, the prune budget may be exceeded if it is set
62+
lower than 1100MB (i.e. `MIN_DISK_SPACE_FOR_BLOCK_FILES * 2`). Prune budget is normally
63+
split evenly across each chainstate, unless the resulting prune budget per chainstate
64+
is beneath `MIN_DISK_SPACE_FOR_BLOCK_FILES` in which case that value will be used. (#27596)
65+
66+
Updated RPCs
67+
------------
68+
69+
- Setting `-rpcserialversion=0` is deprecated and will be removed in
70+
a future release. It can currently still be used by also adding
71+
the `-deprecatedrpc=serialversion` option. (#28448)
72+
73+
- The `hash_serialized_2` value has been removed from `gettxoutsetinfo` since the value it
74+
calculated contained a bug and did not take all data into account. It is superseded by
75+
`hash_serialized_3` which provides the same functionality but serves the correctly calculated hash. (#28685)
76+
77+
- New fields `transport_protocol_type` and `session_id` were added to the `getpeerinfo` RPC to indicate
78+
whether the v2 transport protocol is in use, and if so, what the session id is.
79+
80+
- A new argument `v2transport` was added to the `addnode` RPC to indicate whether a v2 transaction connection
81+
is to be attempted with the peer.
82+
83+
- [Miniscript](https://bitcoin.sipa.be/miniscript/) expressions can now be used in Taproot descriptors for all RPCs working with descriptors. (#27255)
84+
85+
- `finalizepsbt` is now able to finalize a PSBT with inputs spending [Miniscript](https://bitcoin.sipa.be/miniscript/)-compatible Taproot leaves. (#27255)
86+
87+
Changes to wallet related RPCs can be found in the Wallet section below.
88+
89+
New RPCs
90+
--------
91+
92+
- `loadtxoutset` has been added, which allows loading a UTXO snapshot of the format
93+
generated by `dumptxoutset`. Once this snapshot is loaded, its contents will be
94+
deserialized into a second chainstate data structure, which is then used to sync to
95+
the network's tip.
96+
97+
Meanwhile, the original chainstate will complete the initial block download process in
98+
the background, eventually validating up to the block that the snapshot is based upon.
99+
100+
The result is a usable bitcoind instance that is current with the network tip in a
101+
matter of minutes rather than hours. UTXO snapshot are typically obtained via
102+
third-party sources (HTTP, torrent, etc.) which is reasonable since their contents
103+
are always checked by hash.
104+
105+
You can find more information on this process in the `assumeutxo` design
106+
document (<https://github.com/bitcoin/bitcoin/blob/master/doc/design/assumeutxo.md>).
107+
108+
`getchainstates` has been added to aid in monitoring the assumeutxo sync process.
109+
110+
- A new `getprioritisedtransactions` RPC has been added. It returns a map of all fee deltas created by the
111+
user with prioritisetransaction, indexed by txid. The map also indicates whether each transaction is
112+
present in the mempool. (#27501)
113+
114+
- A new RPC, `submitpackage`, has been added. It can be used to submit a list of raw hex
115+
transactions to the mempool to be evaluated as a package using consensus and mempool policy rules.
116+
These policies include package CPFP, allowing a child with high fees to bump a parent below the
117+
mempool minimum feerate (but not minimum relay feerate). (#27609)
118+
119+
- Warning: successful submission does not mean the transactions will propagate throughout the
120+
network, as package relay is not supported.
121+
122+
- Not all features are available. The package is limited to a child with all of its
123+
unconfirmed parents, and no parent may spend the output of another parent. Also, package
124+
RBF is not supported. Refer to doc/policy/packages.md for more details on package policies
125+
and limitations.
126+
127+
- This RPC is experimental. Its interface may change.
128+
129+
- A new RPC `getaddrmaninfo` has been added to view the distribution of addresses in the new and tried table of the
130+
node's address manager across different networks(ipv4, ipv6, onion, i2p, cjdns). The RPC returns count of addresses
131+
in new and tried table as well as their sum for all networks. (#27511)
132+
133+
- A new `importmempool` RPC has been added. It loads a valid `mempool.dat` file and attempts to
134+
add its contents to the mempool. This can be useful to import mempool data from another node
135+
without having to modify the datadir contents and without having to restart the node. (#27460)
136+
- Warning: Importing untrusted files is dangerous, especially if metadata from the file is taken over.
137+
- If you want to apply fee deltas, it is recommended to use the `getprioritisedtransactions` and
138+
`prioritisetransaction` RPCs instead of the `apply_fee_delta_priority` option to avoid
139+
double-prioritising any already-prioritised transactions in the mempool.
140+
141+
Updated settings
142+
----------------
143+
144+
- `bitcoind` and `bitcoin-qt` will now raise an error on startup
145+
if a datadir that is being used contains a bitcoin.conf file that
146+
will be ignored, which can happen when a datadir= line is used in
147+
a bitcoin.conf file. The error message is just a diagnostic intended
148+
to prevent accidental misconfiguration, and it can be disabled to
149+
restore the previous behavior of using the datadir while ignoring
150+
the bitcoin.conf contained in it. (#27302)
151+
152+
- Passing an invalid `-debug`, `-debugexclude`, or `-loglevel` logging configuration
153+
option now raises an error, rather than logging an easily missed warning. (#27632)
154+
155+
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
156+
157+
New settings
158+
------------
159+
160+
Tools and Utilities
161+
-------------------
162+
163+
- A new `bitcoinconsensus_verify_script_with_spent_outputs` function is available in libconsensus which optionally accepts the spent outputs of the transaction being verified.
164+
- A new `bitcoinconsensus_SCRIPT_FLAGS_VERIFY_TAPROOT` flag is available in libconsensus that will verify scripts with the Taproot spending rules.
165+
166+
Wallet
167+
------
168+
169+
- Wallet loading has changed in this release. Wallets with some corrupted records that could be
170+
previously loaded (with warnings) may no longer load. For example, wallets with corrupted
171+
address book entries may no longer load. If this happens, it is recommended
172+
load the wallet in a previous version of Bitcoin Core and import the data into a new wallet.
173+
Please also report an issue to help improve the software and make wallet loading more robust
174+
in these cases. (#24914)
175+
176+
- The `createwallet` RPC will no longer create legacy (BDB) wallets when
177+
setting `descriptors=false` without also providing the
178+
`-deprecatedrpc=create_bdb` option. This is because the legacy wallet is
179+
being deprecated in a future release. (#28597)
180+
181+
- The `gettransaction`, `listtransactions`, `listsinceblock` RPCs now return
182+
the `abandoned` field for all transactions. Previously, the "abandoned" field
183+
was only returned for sent transactions. (#25158)
184+
185+
- The `listdescriptors`, `decodepsbt` and similar RPC methods now show `h` rather than apostrophe (`'`) to indicate
186+
hardened derivation. This does not apply when using the `private` parameter, which
187+
matches the marker used when descriptor was generated or imported. Newly created
188+
wallets use `h`. This change makes it easier to handle descriptor strings manually.
189+
E.g. the `importdescriptors` RPC call is easiest to use `h` as the marker: `'["desc": ".../0h/..."]'`.
190+
With this change `listdescriptors` will use `h`, so you can copy-paste the result,
191+
without having to add escape characters or switch `'` to 'h' manually.
192+
Note that this changes the descriptor checksum.
193+
For legacy wallets the `hdkeypath` field in `getaddressinfo` is unchanged,
194+
nor is the serialization format of wallet dumps. (#26076)
195+
196+
- The `getbalances` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block
197+
hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (#26094)
198+
199+
- The `gettransaction` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block
200+
hash and height at the time the transaction information was generated. (#26094)
201+
202+
- The `getwalletinfo` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block
203+
hash and height at the time the wallet information was generated. (#26094)
204+
205+
- Coin selection and transaction building now accounts for unconfirmed low-feerate ancestor transactions. When it is necessary to spend unconfirmed outputs, the wallet will add fees to ensure that the new transaction with its ancestors will achieve a mining score equal to the feerate requested by the user. (#26152)
206+
207+
- For RPC methods which accept `options` parameters ((`importmulti`, `listunspent`,
208+
`fundrawtransaction`, `bumpfee`, `send`, `sendall`, `walletcreatefundedpsbt`,
209+
`simulaterawtransaction`), it is now possible to pass the options as named
210+
parameters without the need for a nested object. (#26485)
211+
212+
This means it is possible make calls like:
213+
214+
```sh
215+
src/bitcoin-cli -named bumpfee txid fee_rate=100
216+
```
217+
218+
instead of
219+
220+
```sh
221+
src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}'
222+
```
223+
224+
- The `deprecatedrpc=walletwarningfield` configuration option has been removed.
225+
The `createwallet`, `loadwallet`, `restorewallet` and `unloadwallet` RPCs no
226+
longer return the "warning" string field. The same information is provided
227+
through the "warnings" field added in v25.0, which returns a JSON array of
228+
strings. The "warning" string field was deprecated also in v25.0. (#27757)
229+
230+
- The `signrawtransactionwithkey`, `signrawtransactionwithwallet`,
231+
`walletprocesspsbt` and `descriptorprocesspsbt` calls now return the more
232+
specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their
233+
sighashtype argument is malformed. (#28113)
234+
235+
- RPC `walletprocesspsbt`, and `descriptorprocesspsbt` return
236+
object now includes field `hex` (if the transaction
237+
is complete) containing the serialized transaction
238+
suitable for RPC `sendrawtransaction`. (#28414)
239+
240+
- It's now possible to use [Miniscript](https://bitcoin.sipa.be/miniscript/) inside Taproot leaves for descriptor wallets. (#27255)
241+
242+
Descriptors
243+
-----------
244+
245+
- The usage of hybrid public keys in output descriptors has been removed. Hybrid
246+
public keys are an exotic public key encoding not supported by output descriptors
247+
(as specified in BIP380 and documented in doc/descriptors.md). Bitcoin Core would
248+
previously incorrectly accept descriptors containing such hybrid keys. (#28587)
249+
250+
GUI changes
251+
-----------
252+
253+
- The transaction list in the GUI no longer provides a special category for "payment to yourself". Now transactions that have both inputs and outputs that affect the wallet are displayed on separate lines for spending and receiving. (gui#119)
254+
255+
- A new menu option allows migrating a legacy wallet based on keys and implied output script types stored in BerkeleyDB (BDB) to a modern wallet that uses descriptors stored in SQLite. (gui#738)
256+
257+
- The PSBT operations dialog marks outputs paying your own wallet with "own address". (gui#740)
258+
259+
- The ability to create legacy wallets is being removed. (gui#764)
260+
261+
Contrib
262+
-------
263+
264+
- Bash completion files have been renamed from `bitcoin*.bash-completion` to
265+
`bitcoin*.bash`. This means completions can be automatically loaded on demand
266+
based on invoked commands' names when they are put into the completion
267+
directory (found with `pkg-config --variable=completionsdir
268+
bash-completion`) without requiring renaming. (#28507)
269+
270+
Low-level changes
271+
=================
272+
273+
Tests
274+
-----
275+
276+
- Non-standard transactions are now disabled by default on testnet
277+
for relay and mempool acceptance. The previous behaviour can be
278+
re-enabled by setting `-acceptnonstdtxn=1`. (#28354)
279+
280+
Credits
281+
=======
282+
283+
Thanks to everyone who directly contributed to this release:
284+
285+
- 0xb10c
286+
- Amiti Uttarwar
287+
- Andrew Chow
288+
- Andrew Toth
289+
- Anthony Towns
290+
- Antoine Poinsot
291+
- Antoine Riard
292+
- Ari
293+
- Aurèle Oulès
294+
- Ayush Singh
295+
- Ben Woosley
296+
- Brandon Odiwuor
297+
- Brotcrunsher
298+
- brunoerg
299+
- Bufo
300+
- Carl Dong
301+
- Casey Carter
302+
- Cory Fields
303+
- David Álvarez Rosa
304+
- dergoegge
305+
- dhruv
306+
- dimitaracev
307+
- Erik Arvstedt
308+
- Erik McKelvey
309+
- Fabian Jahr
310+
- furszy
311+
- glozow
312+
- Greg Sanders
313+
- Harris
314+
- Hennadii Stepanov
315+
- Hernan Marino
316+
- ishaanam
317+
- ismaelsadeeq
318+
- Jake Rawsthorne
319+
- James O'Beirne
320+
- John Moffett
321+
- Jon Atack
322+
- josibake
323+
- kevkevin
324+
- Kiminuo
325+
- Larry Ruane
326+
- Luke Dashjr
327+
- MarcoFalke
328+
- Marnix
329+
- Martin Leitner-Ankerl
330+
- Martin Zumsande
331+
- Matthew Zipkin
332+
- Michael Ford
333+
- Michael Tidwell
334+
- mruddy
335+
- Murch
336+
- ns-xvrn
337+
- pablomartin4btc
338+
- Pieter Wuille
339+
- Reese Russell
340+
- Rhythm Garg
341+
- Ryan Ofsky
342+
- Sebastian Falbesoner
343+
- Sjors Provoost
344+
- stickies-v
345+
- stratospher
346+
- Suhas Daftuar
347+
- TheCharlatan
348+
- Tim Neubauer
349+
- Tim Ruffing
350+
- Vasil Dimov
351+
- virtu
352+
- vuittont60
353+
- willcl-ark
354+
- Yusuf Sahin HAMZA
355+
356+
As well as to everyone that helped with translations on
357+
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

0 commit comments

Comments
 (0)