|
1 | | -26.0 Release Notes |
| 1 | +26.x Release Notes |
2 | 2 | ================== |
3 | 3 |
|
4 | | -Bitcoin Core version 26.0 is now available from: |
| 4 | +Bitcoin Core version 26.x is now available from: |
5 | 5 |
|
6 | | - <https://bitcoincore.org/bin/bitcoin-core-26.0/> |
| 6 | + <https://bitcoincore.org/bin/bitcoin-core-26.x/> |
7 | 7 |
|
8 | 8 | This release includes new features, various bug fixes and performance |
9 | 9 | improvements, as well as updated translations. |
@@ -40,296 +40,32 @@ unsupported systems. |
40 | 40 | Notable changes |
41 | 41 | =============== |
42 | 42 |
|
43 | | -P2P and network changes |
44 | | ------------------------ |
| 43 | +### Wallet |
45 | 44 |
|
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. |
| 45 | +- #28994 wallet: skip BnB when SFFO is enabled |
| 46 | +- #28920 wallet: birth time update during tx scanning |
| 47 | +- #29176 wallet: Fix use-after-free in WalletBatch::EraseRecords |
51 | 48 |
|
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) |
| 49 | +### RPC |
57 | 50 |
|
58 | | -Pruning |
59 | | -------- |
| 51 | +- #29003 rpc: fix getrawtransaction segfault |
60 | 52 |
|
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) |
| 53 | +### CI |
65 | 54 |
|
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 `gettransaction`, `listtransactions`, `listsinceblock` RPCs now return |
177 | | - the `abandoned` field for all transactions. Previously, the "abandoned" field |
178 | | - was only returned for sent transactions. (#25158) |
179 | | - |
180 | | -- The `listdescriptors`, `decodepsbt` and similar RPC methods now show `h` rather than apostrophe (`'`) to indicate |
181 | | - hardened derivation. This does not apply when using the `private` parameter, which |
182 | | - matches the marker used when descriptor was generated or imported. Newly created |
183 | | - wallets use `h`. This change makes it easier to handle descriptor strings manually. |
184 | | - E.g. the `importdescriptors` RPC call is easiest to use `h` as the marker: `'["desc": ".../0h/..."]'`. |
185 | | - With this change `listdescriptors` will use `h`, so you can copy-paste the result, |
186 | | - without having to add escape characters or switch `'` to 'h' manually. |
187 | | - Note that this changes the descriptor checksum. |
188 | | - For legacy wallets the `hdkeypath` field in `getaddressinfo` is unchanged, |
189 | | - nor is the serialization format of wallet dumps. (#26076) |
190 | | - |
191 | | -- The `getbalances` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block |
192 | | - hash and height at the time the balances were calculated. This result shouldn't be cached because importing new keys could invalidate it. (#26094) |
193 | | - |
194 | | -- The `gettransaction` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block |
195 | | - hash and height at the time the transaction information was generated. (#26094) |
196 | | - |
197 | | -- The `getwalletinfo` RPC now returns a `lastprocessedblock` JSON object which contains the wallet's last processed block |
198 | | - hash and height at the time the wallet information was generated. (#26094) |
199 | | - |
200 | | -- 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) |
201 | | - |
202 | | -- For RPC methods which accept `options` parameters ((`importmulti`, `listunspent`, |
203 | | - `fundrawtransaction`, `bumpfee`, `send`, `sendall`, `walletcreatefundedpsbt`, |
204 | | - `simulaterawtransaction`), it is now possible to pass the options as named |
205 | | - parameters without the need for a nested object. (#26485) |
206 | | - |
207 | | -This means it is possible make calls like: |
208 | | - |
209 | | -```sh |
210 | | -src/bitcoin-cli -named bumpfee txid fee_rate=100 |
211 | | -``` |
212 | | - |
213 | | -instead of |
214 | | - |
215 | | -```sh |
216 | | -src/bitcoin-cli -named bumpfee txid options='{"fee_rate": 100}' |
217 | | -``` |
218 | | - |
219 | | -- The `deprecatedrpc=walletwarningfield` configuration option has been removed. |
220 | | - The `createwallet`, `loadwallet`, `restorewallet` and `unloadwallet` RPCs no |
221 | | - longer return the "warning" string field. The same information is provided |
222 | | - through the "warnings" field added in v25.0, which returns a JSON array of |
223 | | - strings. The "warning" string field was deprecated also in v25.0. (#27757) |
224 | | - |
225 | | -- The `signrawtransactionwithkey`, `signrawtransactionwithwallet`, |
226 | | - `walletprocesspsbt` and `descriptorprocesspsbt` calls now return the more |
227 | | - specific RPC_INVALID_PARAMETER error instead of RPC_MISC_ERROR if their |
228 | | - sighashtype argument is malformed. (#28113) |
229 | | - |
230 | | -- RPC `walletprocesspsbt`, and `descriptorprocesspsbt` return |
231 | | - object now includes field `hex` (if the transaction |
232 | | - is complete) containing the serialized transaction |
233 | | - suitable for RPC `sendrawtransaction`. (#28414) |
234 | | - |
235 | | -- It's now possible to use [Miniscript](https://bitcoin.sipa.be/miniscript/) inside Taproot leaves for descriptor wallets. (#27255) |
236 | | - |
237 | | -GUI changes |
238 | | ------------ |
239 | | - |
240 | | -- 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) |
241 | | - |
242 | | -- 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) |
243 | | - |
244 | | -- The PSBT operations dialog marks outputs paying your own wallet with "own address". (gui#740) |
245 | | - |
246 | | -- The ability to create legacy wallets is being removed. (gui#764) |
247 | | - |
248 | | -Low-level changes |
249 | | -================= |
250 | | - |
251 | | -Tests |
252 | | ------ |
253 | | - |
254 | | -- Non-standard transactions are now disabled by default on testnet |
255 | | - for relay and mempool acceptance. The previous behaviour can be |
256 | | - re-enabled by setting `-acceptnonstdtxn=1`. (#28354) |
| 55 | +- #28992 ci: Use Ubuntu 24.04 Noble for asan,tsan,tidy,fuzz |
| 56 | +- #29080 ci: Set HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK to avoid unrelated failures |
257 | 57 |
|
258 | 58 | Credits |
259 | 59 | ======= |
260 | 60 |
|
261 | 61 | Thanks to everyone who directly contributed to this release: |
262 | 62 |
|
263 | | -- 0xb10c |
264 | | -- Amiti Uttarwar |
265 | 63 | - Andrew Chow |
266 | | -- Andrew Toth |
267 | | -- Anthony Towns |
268 | | -- Antoine Poinsot |
269 | | -- Antoine Riard |
270 | | -- Ari |
271 | | -- Aurèle Oulès |
272 | | -- Ayush Singh |
273 | | -- Ben Woosley |
274 | | -- Brandon Odiwuor |
275 | | -- Brotcrunsher |
276 | | -- brunoerg |
277 | | -- Bufo |
278 | | -- Carl Dong |
279 | | -- Casey Carter |
280 | | -- Cory Fields |
281 | | -- David Álvarez Rosa |
282 | | -- dergoegge |
283 | | -- dhruv |
284 | | -- dimitaracev |
285 | | -- Erik Arvstedt |
286 | | -- Erik McKelvey |
287 | | -- Fabian Jahr |
288 | 64 | - furszy |
289 | | -- glozow |
290 | | -- Greg Sanders |
291 | | -- Harris |
292 | 65 | - Hennadii Stepanov |
293 | | -- Hernan Marino |
294 | | -- ishaanam |
295 | | -- ismaelsadeeq |
296 | | -- Jake Rawsthorne |
297 | | -- James O'Beirne |
298 | | -- John Moffett |
299 | | -- Jon Atack |
300 | | -- josibake |
301 | | -- kevkevin |
302 | | -- Kiminuo |
303 | | -- Larry Ruane |
304 | | -- Luke Dashjr |
305 | 66 | - MarcoFalke |
306 | | -- Marnix |
307 | | -- Martin Leitner-Ankerl |
308 | 67 | - Martin Zumsande |
309 | | -- Matthew Zipkin |
310 | | -- Michael Ford |
311 | | -- Michael Tidwell |
312 | | -- mruddy |
313 | 68 | - Murch |
314 | | -- ns-xvrn |
315 | | -- pablomartin4btc |
316 | | -- Pieter Wuille |
317 | | -- Reese Russell |
318 | | -- Rhythm Garg |
319 | | -- Ryan Ofsky |
320 | | -- Sebastian Falbesoner |
321 | | -- Sjors Provoost |
322 | | -- stickies-v |
323 | | -- stratospher |
324 | | -- Suhas Daftuar |
325 | | -- TheCharlatan |
326 | | -- Tim Neubauer |
327 | | -- Tim Ruffing |
328 | | -- Vasil Dimov |
329 | | -- virtu |
330 | | -- vuittont60 |
331 | | -- willcl-ark |
332 | | -- Yusuf Sahin HAMZA |
333 | 69 |
|
334 | 70 | As well as to everyone that helped with translations on |
335 | 71 | [Transifex](https://www.transifex.com/bitcoin/bitcoin/). |
0 commit comments