Skip to content

Commit 5e084f5

Browse files
committed
Bitcoin Core 26.0
1 parent 55a2ea9 commit 5e084f5

File tree

2 files changed

+394
-0
lines changed

2 files changed

+394
-0
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: Bitcoin Core 26.0 released
3+
name: blog-release-26.0
4+
id: en-blog-release-26.0
5+
lang: en
6+
type: posts
7+
layout: post
8+
9+
## If this is a new post, reset this counter to 1.
10+
version: 1
11+
12+
## Only true if release announcement or security annoucement. English posts only
13+
announcement: 1
14+
15+
excerpt: >
16+
Bitcoin Core 26.0 is now available.
17+
---
18+
Bitcoin Core version 26.0 is now available for [download][download
19+
page]. See the [release notes][release notes] for more information
20+
about the many new features and bug fixes in this release.
21+
22+
If you have any questions, please stop by the #bitcoin IRC chatroom
23+
([IRC][irc], [web][web irc]) and we’ll do our best to help you.
24+
25+
[release notes]: /en/releases/26.0/
26+
[IRC]: irc://irc.libera.chat/bitcoin
27+
[web irc]: https://web.libera.chat/#bitcoin
28+
[download page]: /en/download
29+
30+
{% include references.md %}

_releases/26.0.md

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

0 commit comments

Comments
 (0)