Skip to content

Commit 89d34cf

Browse files
committed
doc: Sync 28.0 release notes with website
1 parent 1101837 commit 89d34cf

File tree

1 file changed

+108
-96
lines changed

1 file changed

+108
-96
lines changed

doc/release-notes.md

Lines changed: 108 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ Upgrading directly from a version of Bitcoin Core that has reached its EOL is
2525
possible, but it might take some time if the data directory needs to be migrated. Old
2626
wallet versions of Bitcoin Core are generally supported.
2727

28-
Running bitcoin core binaries on macOS requires self signing.
28+
Running Bitcoin Core binaries on macOS requires self signing.
2929
```
30-
cd /path/to/bitcoin-core/bin
30+
cd /path/to/bitcoin-28.0/bin
3131
xattr -d com.apple.quarantine bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin
3232
codesign -s - bitcoin-cli bitcoin-qt bitcoin-tx bitcoin-util bitcoin-wallet bitcoind test_bitcoin
3333
```
@@ -37,7 +37,7 @@ Compatibility
3737

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

@@ -53,7 +53,7 @@ the section header is also named `[testnet4]`.
5353

5454
While the intention is to phase out support for Testnet3 in an upcoming
5555
version, support for it is still available via the known options in this
56-
release.
56+
release. (#29775)
5757

5858
Windows Data Directory
5959
----------------------
@@ -63,7 +63,22 @@ to `C:\Users\Username\AppData\Local\Bitcoin`. Bitcoin Core will check the existe
6363
of the old directory first and continue to use that directory for backwards
6464
compatibility if it is present. (#27064)
6565

66-
P2P and network changes
66+
JSON-RPC 2.0 Support
67+
--------------------
68+
69+
The JSON-RPC server now recognizes JSON-RPC 2.0 requests and responds with
70+
strict adherence to the [specification](https://www.jsonrpc.org/specification).
71+
See [JSON-RPC-interface.md](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#json-rpc-11-vs-20) for details. (#27101)
72+
73+
JSON-RPC clients may need to be updated to be compatible with the JSON-RPC server.
74+
Please open an issue on GitHub if any compatibility issues are found.
75+
76+
libbitcoinconsensus Removal
77+
---------------------------
78+
79+
The libbitcoin-consensus library was deprecated in 27.0 and is now completely removed. (#29648)
80+
81+
P2P and Network Changes
6782
-----------------------
6883

6984
- Previously if Bitcoin Core was listening for P2P connections, either using
@@ -83,30 +98,30 @@ P2P and network changes
8398
binds had failed. (#22729)
8499

85100
- UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy`
86-
to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`).
87-
(#27375)
101+
to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`).
102+
(#27375)
88103

89-
- unix socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with
90-
the format `-zmqpubrawtx=unix:/path/to/file`
104+
- UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with
105+
the format `-zmqpubrawtx=unix:/path/to/file` (#27679)
91106

92-
- Additional flags "in" and "out" have been added to `-whitelist` to control whether
93-
permissions apply to incoming connections and/or manual (default: incoming only).
107+
- Additional "in" and "out" flags have been added to `-whitelist` to control whether
108+
permissions apply to inbound connections and/or manual ones (default: inbound only). (#27114)
94109

95-
- Transactions that are too low feerate will be opportunistically paired with their child
96-
transactions and submitted as a package, thus enabling the node to download
97-
1-parent-1-child packages using the existing transaction relay protocol. Combined with
98-
other mempool policies, this allows limited "package relay" when a parent transaction
99-
is below mempool minimum feerate; TRUC parents are additionally allowed to be below
100-
minimum relay feerate (i.e. pay 0 fees). Use the `submitpackage` RPC to submit packages
101-
directly to the node. Warning: this p2p feature is limited (unlike the `submitpackage`
102-
interface, a child with multiple unconfirmed parents is not supported) and not yet
103-
reliable under adversarial conditions. (#28970)
110+
- Transactions having a feerate that is too low will be opportunistically paired with
111+
their child transactions and submitted as a package, thus enabling the node to download
112+
1-parent-1-child packages using the existing transaction relay protocol. Combined with
113+
other mempool policies, this change allows limited "package relay" when a parent transaction
114+
is below the mempool minimum feerate. Topologically Restricted Until Confirmation (TRUC)
115+
parents are additionally allowed to be below the minimum relay feerate (i.e., pay 0 fees).
116+
Use the `submitpackage` RPC to submit packages directly to the node. Warning: this P2P
117+
feature is limited (unlike the `submitpackage` interface, a child with multiple unconfirmed
118+
parents is not supported) and not yet reliable under adversarial conditions. (#28970)
104119

105120
Mempool Policy Changes
106121
----------------------
107122

108123
- Transactions with version number set to 3 are now treated as standard on all networks (#29496),
109-
subject to Opt-in Topologically Restricted Until Confirmation (TRUC) Transactions policy as
124+
subject to opt-in Topologically Restricted Until Confirmation (TRUC) transaction policy as
110125
described in [BIP 431](https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki). The
111126
policy includes limits on spending unconfirmed outputs (#28948), eviction of a previous descendant
112127
if a more incentive-compatible one is submitted (#29306), and a maximum transaction size of 10,000vB
@@ -120,129 +135,115 @@ Mempool Policy Changes
120135
top of an equivalent `sh(OP_TRUE)` output, in addition to the txid stability
121136
of the spending transaction.
122137
N.B. propagation of this output spending on the network will be limited
123-
until a sufficient number of nodes on the network adopt this upgrade.
138+
until a sufficient number of nodes on the network adopt this upgrade. (#30352)
124139

125140
- Limited package RBF is now enabled, where the proposed conflicting package would result in
126141
a connected component, aka cluster, of size 2 in the mempool. All clusters being conflicted
127-
against must be of size 2 or lower.
142+
against must be of size 2 or lower. (#28984)
128143

129-
- `mempoolfullrbf=1` is now set by default.
144+
- The default value of the `-mempoolfullrbf` configuration option has been changed from 0 to 1,
145+
i.e. `mempoolfullrbf=1`. (#30493)
130146

131147
Updated RPCs
132148
------------
133149

134-
- The JSON-RPC server now recognizes JSON-RPC 2.0 requests and responds with
135-
strict adherence to the [specification](https://www.jsonrpc.org/specification).
136-
See [JSON-RPC-interface.md](https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md#json-rpc-11-vs-20) for details.
137-
138150
- The `dumptxoutset` RPC now returns the UTXO set dump in a new and
139-
improved format. At the same time the `loadtxoutset` RPC now
140-
expects this new format in dumps it tries to load. Dumps with the
141-
old format are no longer supported and need to be recreated using
142-
the new format in order to be usable.
151+
improved format. Correspondingly, the `loadtxoutset` RPC now expects
152+
this new format in the dumps it tries to load. Dumps with the old
153+
format are no longer supported and need to be recreated using the
154+
new format to be usable. (#29612)
143155

144156
- AssumeUTXO mainnet parameters have been added for height 840,000.
145157
This means the `loadtxoutset` RPC can now be used on mainnet with
146-
the matching UTXO set from that height.
158+
the matching UTXO set from that height. (#28553)
147159

148160
- The `warnings` field in `getblockchaininfo`, `getmininginfo` and
149161
`getnetworkinfo` now returns all the active node warnings as an array
150-
of strings, instead of just a single warning. The current behaviour
151-
can temporarily be restored by running bitcoind with configuration
152-
option `-deprecatedrpc=warnings`.
153-
154-
- Previously when using the `sendrawtransaction` rpc and specifying outputs
155-
that are already in the UXTO set an RPC error code `-27` with RPC error
156-
text "Transaction already in block chain" was returned in response.
157-
The help text has been updated to "Transaction outputs already in utxo set"
158-
to more accurately describe the source of the issue.
162+
of strings, instead of a single warning. The current behaviour
163+
can be temporarily restored by running Bitcoin Core with the configuration
164+
option `-deprecatedrpc=warnings`. (#29845)
159165

160-
- The default mode for the `estimatesmartfee` RPC has been updated from `conservative` to `economical`.
161-
which is expected to reduce overestimation for many users, particularly if Replace-by-Fee is an option.
162-
For users that require high confidence in their fee estimates at the cost of potentially overestimating,
163-
the `conservative` mode remains available.
166+
- Previously when using the `sendrawtransaction` RPC and specifying outputs
167+
that are already in the UTXO set, an RPC error code of `-27` with the
168+
message "Transaction already in block chain" was returned in response.
169+
The error message has been changed to "Transaction outputs already in utxo set"
170+
to more accurately describe the source of the issue. (#30212)
164171

165-
- An item of `unspents`, of `scantxoutset`, has two new fields: `blockhash`
166-
and `confirmations`. `blockhash` is the hash of the block where the UTXO was
167-
created. `confirmations` is the number of confirmations of the UTXO. (#30515)
172+
- The default mode for the `estimatesmartfee` RPC has been updated from `conservative` to `economical`,
173+
which is expected to reduce over-estimation for many users, particularly if Replace-by-Fee is an option.
174+
For users that require high confidence in their fee estimates at the cost of potentially over-estimating,
175+
the `conservative` mode remains available. (#30275)
168176

169-
- `maxfeerate` and `maxburnamount` arguments are added to submitpackage.
177+
- RPC `scantxoutset` now returns 2 new fields in the "unspents" JSON array: `blockhash` and `confirmations`.
178+
See the scantxoutset help for details. (#30515)
170179

171-
Changes to wallet related RPCs can be found in the Wallet section below.
180+
- RPC `submitpackage` now allows 2 new arguments to be passed: `maxfeerate` and `maxburnamount`. See the
181+
subtmitpackage help for details. (#28950)
172182

173-
New RPCs
174-
--------
183+
Changes to wallet-related RPCs can be found in the Wallet section below.
175184

176185
Updated REST APIs
177186
-----------------
178187
- Parameter validation for `/rest/getutxos` has been improved by rejecting
179-
truncated or overly large txids and malformed outpoint indices by raising an
180-
HTTP_BAD_REQUEST "Parse error". Previously, these malformed requests would be
181-
silently handled. (#30482, #30444)
188+
truncated or overly large txids and malformed outpoint indices via raising
189+
an HTTP_BAD_REQUEST "Parse error". These requests were previously handled
190+
silently. (#30482, #30444)
182191

183192
Build System
184193
------------
185194

186195
- GCC 11.1 or later, or Clang 16.0 or later,
187-
are now required to compile Bitcoin Core.
196+
are now required to compile Bitcoin Core. (#29091, #30263)
188197

189198
- The minimum required glibc to run Bitcoin Core is now
190199
2.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic)
191200
are no-longer supported. (#29987)
192201

193202
- `--enable-lcov-branch-coverage` has been removed, given
194203
incompatibilities between lcov version 1 & 2. `LCOV_OPTS`
195-
should be used to set any options instead.
204+
should be used to set any options instead. (#30192)
196205

197-
Updated settings
206+
Updated Settings
198207
----------------
199208

200209
- When running with `-alertnotify`, an alert can now be raised multiple
201210
times instead of just once. Previously, it was only raised when unknown
202-
new consensus rules were activated, whereas the scope has now been
203-
increased to include all kernel warnings. Specifically, alerts will now
204-
also be raised when an invalid chain with a large amount of work has
205-
been detected. Additional warnings may be added in the future.
206-
(#30058)
211+
new consensus rules were activated. Its scope has now been increased to
212+
include all kernel warnings. Specifically, alerts will now also be raised
213+
when an invalid chain with a large amount of work has been detected.
214+
Additional warnings may be added in the future. (#30058)
207215

208216
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
209217

210-
New settings
211-
------------
212-
213-
Tools and Utilities
214-
-------------------
215-
216218
Wallet
217219
------
218220

219-
- The wallet now detects when wallet transactions conflict with the mempool. Mempool
220-
conflicting transactions can be seen in the `"mempoolconflicts"` field of
221-
`gettransaction`. The inputs of mempool conflicted transactions can now be respent
222-
without manually abandoning the transactions when the parent transaction is dropped
223-
from the mempool, which can cause wallet balances to appear higher.
221+
- The wallet now detects when wallet transactions conflict with the mempool. Mempool-conflicting
222+
transactions can be seen in the `"mempoolconflicts"` field of `gettransaction`. The inputs
223+
of mempool-conflicted transactions can now be respent without manually abandoning the
224+
transactions when the parent transaction is dropped from the mempool, which can cause wallet
225+
balances to appear higher. (#27307)
224226

225227
- A new `max_tx_weight` option has been added to the RPCs `fundrawtransaction`, `walletcreatefundedpsbt`, and `send`.
226228
It specifies the maximum transaction weight. If the limit is exceeded during funding, the transaction will not be built.
227-
The default value is 4,000,000 WU.
229+
The default value is 4,000,000 WU. (#29523)
228230

229-
- A new RPC `createwalletdescriptor` is added which allows users to add new automatically
230-
generated descriptors to their wallet. This can be used to upgrade wallets created prior to
231-
the introduction of a new standard descriptor, such as taproot.
231+
- A new `createwalletdescriptor` RPC allows users to add new automatically generated
232+
descriptors to their wallet. This can be used to upgrade wallets created prior to the
233+
introduction of a new standard descriptor, such as taproot. (#29130)
232234

233-
- A new RPC `gethdkeys` is added which will list all of the BIP 32 HD keys in use by all
234-
of the descriptors in the wallet. These keys can be used in conjunction with `createwalletdescriptor`
235-
to create and add single key descriptors to the wallet for a particular key that the wallet
236-
already knows.
235+
- A new RPC `gethdkeys` lists all of the BIP32 HD keys in use by all of the descriptors in the wallet.
236+
These keys can be used in conjunction with `createwalletdescriptor` to create and add single key
237+
descriptors to the wallet for a particular key that the wallet already knows. (#29130)
237238

238-
- The `sendall` RPC can spend unconfirmed change and will include additional fees as necessary
239-
for the resulting transaction to bump the unconfirmed transactions' feerates to the specified feerate.
239+
- The `sendall` RPC can now spend unconfirmed change and will include additional fees as necessary
240+
for the resulting transaction to bump the unconfirmed transactions' feerates to the specified feerate. (#28979)
240241

241-
- If a `fee_rate` is specified when using the `bumpfee` RPC, the feerate is no longer restricted to
242-
following the wallet's incremental feerate of 5 sat/vb. The feerate must still be at least the sum
243-
of the original fee and the mempool's incremental feerate.
242+
- In RPC `bumpfee`, if a `fee_rate` is specified, the feerate is no longer restricted
243+
to following the wallet's incremental feerate of 5 sat/vb. The feerate must still be
244+
at least the sum of the original fee and the mempool's incremental feerate. (#27969)
244245

245-
GUI changes
246+
GUI Changes
246247
-----------
247248

248249
- The "Migrate Wallet" menu allows users to migrate any legacy wallet in their wallet
@@ -251,25 +252,36 @@ directory, regardless of the wallets loaded. (gui#824)
251252
- The "Information" window now displays the maximum mempool size along with the
252253
mempool usage. (gui#825)
253254

254-
Low-level changes
255+
Low-level Changes
255256
=================
256257

257-
RPC
258-
---
259-
260258
Tests
261259
-----
262260

263-
- The BIP94 timewarp attack mitigation is now active on the `regtest` network
261+
- The BIP94 timewarp attack mitigation is now active on the `regtest` network. (#30681)
264262

265-
- `-testdatadir` is added to `test_bitcoin` to allow specifying the location for unit test data directories.
263+
- A new `-testdatadir` option has been added to `test_bitcoin` to allow specifying the
264+
location of unit test data directories. (#26564)
266265

267266
Blockstorage
268267
------------
269268

270269
- Block files are now XOR'd by default with a key stored in the blocksdir.
271270
Previous releases of Bitcoin Core or previous external software will not be able to read the blocksdir with a non-zero XOR-key.
272-
Refer to the `-blocksxor` help for more details.
271+
Refer to the `-blocksxor` help for more details. (#28052)
272+
273+
Chainstate
274+
----------
275+
276+
- The chainstate database flushes that occur when blocks are pruned will no longer
277+
empty the database cache. The cache will remain populated longer, which significantly
278+
reduces the time for initial block download to complete. (#28280)
279+
280+
Dependencies
281+
------------
282+
283+
- The dependency on Boost.Process has been replaced with cpp-subprocess, which is contained in source.
284+
Builders will no longer need Boost.Process to build with external signer support. (#28981)
273285

274286
Credits
275287
=======

0 commit comments

Comments
 (0)