|
| 1 | +--- |
| 2 | +title: Bitcoin Core 25.0 |
| 3 | +id: en-release-25.0 |
| 4 | +name: release-25.0 |
| 5 | +permalink: /en/releases/25.0/ |
| 6 | +excerpt: Bitcoin Core version 25.0 is now available |
| 7 | +date: 2023-05-26 |
| 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: [25, 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:092358777175c4306602f9b1b523738df4b4610b&dn=bitcoin-core-25.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 | +25.0 Release Notes |
| 29 | +================== |
| 30 | + |
| 31 | +Bitcoin Core version 25.0 is now available from: |
| 32 | + |
| 33 | + <https://bitcoincore.org/bin/bitcoin-core-25.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 10.15+, 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 | +- Transactions of non-witness size 65 bytes and above are now allowed by mempool |
| 74 | + and relay policy. This is to better reflect the actual afforded protections |
| 75 | + against CVE-2017-12842 and open up additional use-cases of smaller transaction sizes. (#26265) |
| 76 | + |
| 77 | +New RPCs |
| 78 | +-------- |
| 79 | + |
| 80 | +- The scanblocks RPC returns the relevant blockhashes from a set of descriptors by |
| 81 | + scanning all blockfilters in the given range. It can be used in combination with |
| 82 | + the getblockheader and rescanblockchain RPCs to achieve fast wallet rescans. Note |
| 83 | + that this functionality can only be used if a compact block filter index |
| 84 | + (-blockfilterindex=1) has been constructed by the node. (#23549) |
| 85 | + |
| 86 | +Updated RPCs |
| 87 | +------------ |
| 88 | + |
| 89 | +- All JSON-RPC methods accept a new [named |
| 90 | + parameter](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#parameter-passing) called `args` that can |
| 91 | + contain positional parameter values. This is a convenience to allow some |
| 92 | + parameter values to be passed by name without having to name every value. The |
| 93 | + python test framework and `bitcoin-cli` tool both take advantage of this, so |
| 94 | + for example: |
| 95 | + |
| 96 | +```sh |
| 97 | +bitcoin-cli -named createwallet wallet_name=mywallet load_on_startup=1 |
| 98 | +``` |
| 99 | + |
| 100 | +Can now be shortened to: |
| 101 | + |
| 102 | +```sh |
| 103 | +bitcoin-cli -named createwallet mywallet load_on_startup=1 |
| 104 | +``` |
| 105 | + |
| 106 | +- The `verifychain` RPC will now return `false` if the checks didn't fail, |
| 107 | + but couldn't be completed at the desired depth and level. This could be due |
| 108 | + to missing data while pruning, due to an insufficient dbcache or due to |
| 109 | + the node being shutdown before the call could finish. (#25574) |
| 110 | + |
| 111 | +- `sendrawtransaction` has a new, optional argument, `maxburnamount` with a default value of `0`. |
| 112 | + Any transaction containing an unspendable output with a value greater than `maxburnamount` will |
| 113 | + not be submitted. At present, the outputs deemed unspendable are those with scripts that begin |
| 114 | + with an `OP_RETURN` code (known as 'datacarriers'), scripts that exceed the maximum script size, |
| 115 | + and scripts that contain invalid opcodes. |
| 116 | + |
| 117 | +- The `testmempoolaccept` RPC now returns 2 additional results within the "fees" result: |
| 118 | + "effective-feerate" is the feerate including fees and sizes of transactions validated together if |
| 119 | + package validation was used, and also includes any modified fees from prioritisetransaction. The |
| 120 | + "effective-includes" result lists the wtxids of transactions whose modified fees and sizes were used |
| 121 | + in the effective-feerate (#26646). |
| 122 | + |
| 123 | +- `decodescript` may now infer a Miniscript descriptor under P2WSH context if it is not lacking |
| 124 | + information. (#27037) |
| 125 | + |
| 126 | +- `finalizepsbt` is now able to finalize a transaction with inputs spending Miniscript-compatible |
| 127 | + P2WSH scripts. (#24149) |
| 128 | + |
| 129 | +Changes to wallet related RPCs can be found in the Wallet section below. |
| 130 | + |
| 131 | +Build System |
| 132 | +------------ |
| 133 | + |
| 134 | +- The `--enable-upnp-default` and `--enable-natpmp-default` options |
| 135 | + have been removed. If you want to use port mapping, you can |
| 136 | + configure it using a .conf file, or by passing the relevant |
| 137 | + options at runtime. (#26896) |
| 138 | + |
| 139 | +Updated settings |
| 140 | +---------------- |
| 141 | + |
| 142 | +- If the `-checkblocks` or `-checklevel` options are explicitly provided by the |
| 143 | +user, but the verification checks cannot be completed due to an insufficient |
| 144 | +dbcache, Bitcoin Core will now return an error at startup. (#25574) |
| 145 | + |
| 146 | +- Ports specified in `-port` and `-rpcport` options are now validated at startup. |
| 147 | + Values that previously worked and were considered valid can now result in errors. (#22087) |
| 148 | + |
| 149 | +- Setting `-blocksonly` will now reduce the maximum mempool memory |
| 150 | + to 5MB (users may still use `-maxmempool` to override). Previously, |
| 151 | + the default 300MB would be used, leading to unexpected memory usage |
| 152 | + for users running with `-blocksonly` expecting it to eliminate |
| 153 | + mempool memory usage. |
| 154 | + |
| 155 | + As unused mempool memory is shared with dbcache, this also reduces |
| 156 | + the dbcache size for users running with `-blocksonly`, potentially |
| 157 | + impacting performance. |
| 158 | +- Setting `-maxconnections=0` will now disable `-dnsseed` |
| 159 | + and `-listen` (users may still set them to override). |
| 160 | + |
| 161 | +Changes to GUI or wallet related settings can be found in the GUI or Wallet section below. |
| 162 | + |
| 163 | +New settings |
| 164 | +------------ |
| 165 | + |
| 166 | +- The `shutdownnotify` option is used to specify a command to execute synchronously |
| 167 | +before Bitcoin Core has begun its shutdown sequence. (#23395) |
| 168 | + |
| 169 | + |
| 170 | +Wallet |
| 171 | +------ |
| 172 | + |
| 173 | +- The `minconf` option, which allows a user to specify the minimum number |
| 174 | +of confirmations a UTXO being spent has, and the `maxconf` option, |
| 175 | +which allows specifying the maximum number of confirmations, have been |
| 176 | +added to the following RPCs in #25375: |
| 177 | + - `fundrawtransaction` |
| 178 | + - `send` |
| 179 | + - `walletcreatefundedpsbt` |
| 180 | + - `sendall` |
| 181 | + |
| 182 | +- Added a new `next_index` field in the response in `listdescriptors` to |
| 183 | + have the same format as `importdescriptors` (#26194) |
| 184 | + |
| 185 | +- RPC `listunspent` now has a new argument `include_immature_coinbase` |
| 186 | + to include coinbase UTXOs that don't meet the minimum spendability |
| 187 | + depth requirement (which before were silently skipped). (#25730) |
| 188 | + |
| 189 | +- Rescans for descriptor wallets are now significantly faster if compact |
| 190 | + block filters (BIP158) are available. Since those are not constructed |
| 191 | + by default, the configuration option "-blockfilterindex=1" has to be |
| 192 | + provided to take advantage of the optimization. This improves the |
| 193 | + performance of the RPC calls `rescanblockchain`, `importdescriptors` |
| 194 | + and `restorewallet`. (#25957) |
| 195 | + |
| 196 | +- RPC `unloadwallet` now fails if a rescan is in progress. (#26618) |
| 197 | + |
| 198 | +- Wallet passphrases may now contain null characters. |
| 199 | + Prior to this change, only characters up to the first |
| 200 | + null character were recognized and accepted. (#27068) |
| 201 | + |
| 202 | +- Address Purposes strings are now restricted to the currently known values of "send", |
| 203 | + "receive", and "refund". Wallets that have unrecognized purpose strings will have |
| 204 | + loading warnings, and the `listlabels` RPC will raise an error if an unrecognized purpose |
| 205 | + is requested. (#27217) |
| 206 | + |
| 207 | +- In the `createwallet`, `loadwallet`, `unloadwallet`, and `restorewallet` RPCs, the |
| 208 | + "warning" string field is deprecated in favor of a "warnings" field that |
| 209 | + returns a JSON array of strings to better handle multiple warning messages and |
| 210 | + for consistency with other wallet RPCs. The "warning" field will be fully |
| 211 | + removed from these RPCs in v26. It can be temporarily re-enabled during the |
| 212 | + deprecation period by launching bitcoind with the configuration option |
| 213 | + `-deprecatedrpc=walletwarningfield`. (#27279) |
| 214 | + |
| 215 | +- Descriptor wallets can now spend coins sent to P2WSH Miniscript descriptors. (#24149) |
| 216 | + |
| 217 | +GUI changes |
| 218 | +----------- |
| 219 | + |
| 220 | +- The "Mask values" is a persistent option now. (gui#701) |
| 221 | +- The "Mask values" option affects the "Transaction" view now, in addition to the |
| 222 | + "Overview" one. (gui#708) |
| 223 | + |
| 224 | +REST |
| 225 | +---- |
| 226 | + |
| 227 | +- A new `/rest/deploymentinfo` endpoint has been added for fetching various |
| 228 | + state info regarding deployments of consensus changes. (#25412) |
| 229 | + |
| 230 | +Binary verification |
| 231 | +---- |
| 232 | + |
| 233 | +- The binary verification script has been updated. In previous releases it |
| 234 | + would verify that the binaries had been signed with a single "release key". |
| 235 | + In this release and moving forward it will verify that the binaries are |
| 236 | + signed by a _threshold of trusted keys_. For more details and |
| 237 | + examples, see: |
| 238 | + https://github.com/bitcoin/bitcoin/blob/master/contrib/verify-binaries/README.md |
| 239 | + (#27358) |
| 240 | + |
| 241 | +Low-level changes |
| 242 | +================= |
| 243 | + |
| 244 | +RPC |
| 245 | +--- |
| 246 | + |
| 247 | +- The JSON-RPC server now rejects requests where a parameter is specified multiple |
| 248 | + times with the same name, instead of silently overwriting earlier parameter values |
| 249 | + with later ones. (#26628) |
| 250 | +- RPC `listsinceblock` now accepts an optional `label` argument |
| 251 | + to fetch incoming transactions having the specified label. (#25934) |
| 252 | +- Previously `setban`, `addpeeraddress`, `walletcreatefundedpsbt`, methods |
| 253 | + allowed non-boolean and non-null values to be passed as boolean parameters. |
| 254 | + Any string, number, array, or object value that was passed would be treated |
| 255 | + as false. After this change, passing any value except `true`, `false`, or |
| 256 | + `null` now triggers a JSON value is not of expected type error. (#26213) |
| 257 | + |
| 258 | +Credits |
| 259 | +======= |
| 260 | + |
| 261 | +Thanks to everyone who directly contributed to this release: |
| 262 | + |
| 263 | +- 0xb10c |
| 264 | +- 721217.xyz |
| 265 | +- @RandyMcMillan |
| 266 | +- amadeuszpawlik |
| 267 | +- Amiti Uttarwar |
| 268 | +- Andrew Chow |
| 269 | +- Andrew Toth |
| 270 | +- Anthony Towns |
| 271 | +- Antoine Poinsot |
| 272 | +- Aurèle Oulès |
| 273 | +- Ben Woosley |
| 274 | +- Bitcoin Hodler |
| 275 | +- brunoerg |
| 276 | +- Bushstar |
| 277 | +- Carl Dong |
| 278 | +- Chris Geihsler |
| 279 | +- Cory Fields |
| 280 | +- David Gumberg |
| 281 | +- dergoegge |
| 282 | +- Dhruv Mehta |
| 283 | +- Dimitris Tsapakidis |
| 284 | +- dougEfish |
| 285 | +- Douglas Chimento |
| 286 | +- ekzyis |
| 287 | +- Elichai Turkel |
| 288 | +- Ethan Heilman |
| 289 | +- Fabian Jahr |
| 290 | +- FractalEncrypt |
| 291 | +- furszy |
| 292 | +- Gleb Naumenko |
| 293 | +- glozow |
| 294 | +- Greg Sanders |
| 295 | +- Hennadii Stepanov |
| 296 | +- hernanmarino |
| 297 | +- ishaanam |
| 298 | +- ismaelsadeeq |
| 299 | +- James O'Beirne |
| 300 | + |
| 301 | +- Jeff Ruane |
| 302 | +- Jeffrey Czyz |
| 303 | +- Jeremy Rubin |
| 304 | +- Jesse Barton |
| 305 | +- João Barbosa |
| 306 | +- JoaoAJMatos |
| 307 | +- John Moffett |
| 308 | +- Jon Atack |
| 309 | +- Jonas Schnelli |
| 310 | +- jonatack |
| 311 | +- Joshua Kelly |
| 312 | +- josibake |
| 313 | +- Juan Pablo Civile |
| 314 | +- kdmukai |
| 315 | +- klementtan |
| 316 | +- Kolby ML |
| 317 | +- kouloumos |
| 318 | +- Kristaps Kaupe |
| 319 | +- laanwj |
| 320 | +- Larry Ruane |
| 321 | +- Leonardo Araujo |
| 322 | +- Leonardo Lazzaro |
| 323 | +- Luke Dashjr |
| 324 | +- MacroFake |
| 325 | +- MarcoFalke |
| 326 | +- Martin Leitner-Ankerl |
| 327 | +- Martin Zumsande |
| 328 | +- Matt Whitlock |
| 329 | +- Matthew Zipkin |
| 330 | +- Michael Ford |
| 331 | +- Miles Liu |
| 332 | +- mruddy |
| 333 | +- Murray Nesbitt |
| 334 | +- muxator |
| 335 | +- omahs |
| 336 | +- pablomartin4btc |
| 337 | +- Pasta |
| 338 | +- Pieter Wuille |
| 339 | +- Pttn |
| 340 | +- Randall Naar |
| 341 | +- Riahiamirreza |
| 342 | +- roconnor-blockstream |
| 343 | +- Russell O'Connor |
| 344 | +- Ryan Ofsky |
| 345 | +- S3RK |
| 346 | +- Sebastian Falbesoner |
| 347 | +- Seibart Nedor |
| 348 | +- sinetek |
| 349 | +- Sjors Provoost |
| 350 | +- Skuli Dulfari |
| 351 | +- SomberNight |
| 352 | +- Stacie Waleyko |
| 353 | +- stickies-v |
| 354 | +- stratospher |
| 355 | +- Suhas Daftuar |
| 356 | +- Suriyaa Sundararuban |
| 357 | +- TheCharlatan |
| 358 | +- Vasil Dimov |
| 359 | +- Vasil Stoyanov |
| 360 | +- virtu |
| 361 | +- w0xlt |
| 362 | +- willcl-ark |
| 363 | +- yancy |
| 364 | +- Yusuf Sahin HAMZA |
| 365 | + |
| 366 | +As well as to everyone that helped with translations on |
| 367 | +[Transifex](https://www.transifex.com/bitcoin/bitcoin/). |
| 368 | +{% endgithubify %} |
0 commit comments