/ doc / release-notes / release-notes-27.0.md
release-notes-27.0.md
  1  Bitcoin Core version 27.0 is now available from:
  2  
  3    <https://bitcoincore.org/bin/bitcoin-core-27.0/>
  4  
  5  This release includes new features, various bug fixes and performance
  6  improvements, as well as updated translations.
  7  
  8  Please report bugs using the issue tracker at GitHub:
  9  
 10    <https://github.com/bitcoin/bitcoin/issues>
 11  
 12  To receive security and update notifications, please subscribe to:
 13  
 14    <https://bitcoincore.org/en/list/announcements/join/>
 15  
 16  How to Upgrade
 17  ==============
 18  
 19  If you are running an older version, shut it down. Wait until it has completely
 20  shut down (which might take a few minutes in some cases), then run the
 21  installer (on Windows) or just copy over `/Applications/Bitcoin-Qt` (on macOS)
 22  or `bitcoind`/`bitcoin-qt` (on Linux).
 23  
 24  Upgrading directly from a version of Bitcoin Core that has reached its EOL is
 25  possible, but it might take some time if the data directory needs to be migrated. Old
 26  wallet versions of Bitcoin Core are generally supported.
 27  
 28  Compatibility
 29  ==============
 30  
 31  Bitcoin Core is supported and extensively tested on operating systems
 32  using the Linux Kernel 3.17+, macOS 11.0+, and Windows 7 and newer. Bitcoin
 33  Core should also work on most other Unix-like systems but is not as
 34  frequently tested on them. It is not recommended to use Bitcoin Core on
 35  unsupported systems.
 36  
 37  Notable changes
 38  ===============
 39  
 40  libbitcoinconsensus
 41  -------------------
 42  
 43  - libbitcoinconsensus is deprecated and will be removed for v28. This library has
 44    existed for nearly 10 years with very little known uptake or impact. It has
 45    become a maintenance burden.
 46  
 47    The underlying functionality does not change between versions, so any users of
 48    the library can continue to use the final release indefinitely, with the
 49    understanding that Taproot is its final consensus update.
 50  
 51    In the future, libbitcoinkernel will provide a much more useful API that is
 52    aware of the UTXO set, and therefore be able to fully validate transactions and
 53    blocks. (#29189)
 54  
 55  mempool.dat compatibility
 56  -------------------------
 57  
 58  - The `mempool.dat` file created by -persistmempool or the savemempool RPC will
 59    be written in a new format. This new format includes the XOR'ing of transaction
 60    contents to mitigate issues where external programs (such as anti-virus) attempt
 61    to interpret and potentially modify the file.
 62  
 63    This new format can not be read by previous software releases. To allow for a
 64    downgrade, a temporary setting `-persistmempoolv1` has been added to fall back
 65    to the legacy format. (#28207)
 66  
 67  P2P and network changes
 68  -----------------------
 69  
 70  - BIP324 v2 transport is now enabled by default. It remains possible to disable v2
 71    by running with `-v2transport=0`. (#29347)
 72  - Manual connection options (`-connect`, `-addnode` and `-seednode`) will
 73    now follow `-v2transport` to connect with v2 by default. They will retry with
 74    v1 on failure. (#29058)
 75  
 76  - Network-adjusted time has been removed from consensus code. It is replaced
 77    with (unadjusted) system time. The warning for a large median time offset
 78    (70 minutes or more) is kept. This removes the implicit security assumption of
 79    requiring an honest majority of outbound peers, and increases the importance
 80    of the node operator ensuring their system time is (and stays) correct to not
 81    fall out of consensus with the network. (#28956)
 82  
 83  Mempool Policy Changes
 84  ----------------------
 85  
 86  - Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy
 87    (aka v3 transaction policy) is available for use on test networks when
 88    `-acceptnonstdtxn=1` is set. By setting the transaction version number to 3, TRUC transactions
 89    request the application of limits on spending of their unconfirmed outputs. These
 90    restrictions simplify the assessment of incentive compatibility of accepting or
 91    replacing TRUC transactions, thus ensuring any replacements are more profitable for
 92    the node and making fee-bumping more reliable. TRUC transactions are currently
 93    nonstandard and can only be used on test networks where the standardness rules are
 94    relaxed or disabled (e.g. with `-acceptnonstdtxn=1`). (#28948)
 95  
 96  External Signing
 97  ----------------
 98  
 99  - Support for external signing on Windows has been disabled. It will be re-enabled
100    once the underlying dependency (Boost Process), has been replaced with a different
101    library. (#28967)
102  
103  Updated RPCs
104  ------------
105  
106  - The addnode RPC now follows the `-v2transport` option (now on by default, see above) for making connections.
107    It remains possible to specify the transport type manually with the v2transport argument of addnode. (#29239)
108  
109  Build System
110  ------------
111  
112  - A C++20 capable compiler is now required to build Bitcoin Core. (#28349)
113  - MacOS releases are configured to use the hardened runtime libraries (#29127)
114  
115  Wallet
116  ------
117  
118  - The CoinGrinder coin selection algorithm has been introduced to mitigate unnecessary
119    large input sets and lower transaction costs at high feerates. CoinGrinder
120    searches for the input set with minimal weight. Solutions found by
121    CoinGrinder will produce a change output. CoinGrinder is only active at
122    elevated feerates (default: 30+ sat/vB, based on `-consolidatefeerate`×3). (#27877)
123  - The Branch And Bound coin selection algorithm will be disabled when the subtract fee
124    from outputs feature is used. (#28994)
125  - If the birth time of a descriptor is detected to be later than the first transaction
126    involving that descriptor, the birth time will be reset to the earlier time. (#28920)
127  
128  Low-level changes
129  =================
130  
131  Pruning
132  -------
133  
134  - When pruning during initial block download, more blocks will be pruned at each
135    flush in order to speed up the syncing of such nodes. (#20827)
136  
137  Init
138  ----
139  
140  - Various fixes to prevent issues where subsequent instances of Bitcoin Core would
141    result in deletion of files in use by an existing instance. (#28784, #28946)
142  - Improved handling of empty `settings.json` files. (#29144)
143  
144  Credits
145  =======
146  
147  Thanks to everyone who directly contributed to this release:
148  
149  - 22388o⚡️
150  - Aaron Clauson
151  - Amiti Uttarwar
152  - Andrew Toth
153  - Anthony Towns
154  - Antoine Poinsot
155  - Ava Chow
156  - Brandon Odiwuor
157  - brunoerg
158  - Chris Stewart
159  - Cory Fields
160  - dergoegge
161  - djschnei21
162  - Fabian Jahr
163  - fanquake
164  - furszy
165  - Gloria Zhao
166  - Greg Sanders
167  - Hennadii Stepanov
168  - Hernan Marino
169  - iamcarlos94
170  - ismaelsadeeq
171  - Jameson Lopp
172  - Jesse Barton
173  - John Moffett
174  - Jon Atack
175  - josibake
176  - jrakibi
177  - Justin Dhillon
178  - Kashif Smith
179  - kevkevin
180  - Kristaps Kaupe
181  - L0la L33tz
182  - Luke Dashjr
183  - Lőrinc
184  - marco
185  - MarcoFalke
186  - Mark Friedenbach
187  - Marnix
188  - Martin Leitner-Ankerl
189  - Martin Zumsande
190  - Max Edwards
191  - Murch
192  - muxator
193  - naiyoma
194  - Nikodemas Tuckus
195  - ns-xvrn
196  - pablomartin4btc
197  - Peter Todd
198  - Pieter Wuille
199  - Richard Myers
200  - Roman Zeyde
201  - Russell Yanofsky
202  - Ryan Ofsky
203  - Sebastian Falbesoner
204  - Sergi Delgado Segura
205  - Sjors Provoost
206  - stickies-v
207  - stratospher
208  - Supachai Kheawjuy
209  - TheCharlatan
210  - UdjinM6
211  - Vasil Dimov
212  - w0xlt
213  - willcl-ark
214  
215  
216  As well as to everyone that helped with translations on
217  [Transifex](https://www.transifex.com/bitcoin/bitcoin/).