Skip to content

Commit 9add853

Browse files
committed
doc: update release notes for 28.1rc1
1 parent 1025090 commit 9add853

File tree

1 file changed

+20
-303
lines changed

1 file changed

+20
-303
lines changed

doc/release-notes.md

Lines changed: 20 additions & 303 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
Bitcoin Core version 28.0 is now available from:
1+
Bitcoin Core version 28.1rc1 is now available from:
22

3-
<https://bitcoincore.org/bin/bitcoin-core-28.0/>
3+
<https://bitcoincore.org/bin/bitcoin-core-28.1/test.rc1>
44

55
This release includes new features, various bug fixes and performance
66
improvements, as well as updated translations.
@@ -27,7 +27,7 @@ wallet versions of Bitcoin Core are generally supported.
2727

2828
Running Bitcoin Core binaries on macOS requires self signing.
2929
```
30-
cd /path/to/bitcoin-28.0/bin
30+
cd /path/to/bitcoin-28.x/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
```
@@ -44,328 +44,45 @@ unsupported systems.
4444
Notable changes
4545
===============
4646

47-
Testnet4/BIP94 support
48-
-----
47+
### P2P
4948

50-
Support for Testnet4 as specified in [BIP94](https://github.com/bitcoin/bips/blob/master/bip-0094.mediawiki)
51-
has been added. The network can be selected with the `-testnet4` option and
52-
the section header is also named `[testnet4]`.
49+
- #30568 addrman: change internal id counting to int64_t
5350

54-
While the intention is to phase out support for Testnet3 in an upcoming
55-
version, support for it is still available via the known options in this
56-
release. (#29775)
51+
### Key
5752

58-
Windows Data Directory
59-
----------------------
53+
- #31166 key: clear out secret data in DecodeExtKey
6054

61-
The default data directory on Windows has been moved from `C:\Users\Username\AppData\Roaming\Bitcoin`
62-
to `C:\Users\Username\AppData\Local\Bitcoin`. Bitcoin Core will check the existence
63-
of the old directory first and continue to use that directory for backwards
64-
compatibility if it is present. (#27064)
55+
### Build
6556

66-
JSON-RPC 2.0 Support
67-
--------------------
57+
- #31013 depends: For mingw cross compile use `-gcc-posix` to prevent library conflict
6858

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)
59+
### Test
7260

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.
61+
- #31016 test: add missing sync to feature_fee_estimation.py
7562

76-
libbitcoinconsensus Removal
77-
---------------------------
63+
### Doc
7864

79-
The libbitcoin-consensus library was deprecated in 27.0 and is now completely removed. (#29648)
65+
- #31007 doc: add testnet4 section header for config file
8066

81-
P2P and Network Changes
82-
-----------------------
67+
### CI
8368

84-
- Previously if Bitcoin Core was listening for P2P connections, either using
85-
default settings or via `bind=addr:port` it would always also bind to
86-
`127.0.0.1:8334` to listen for Tor connections. It was not possible to switch
87-
this off, even if the node didn't use Tor. This has been changed and now
88-
`bind=addr:port` results in binding on `addr:port` only. The default behavior
89-
of binding to `0.0.0.0:8333` and `127.0.0.1:8334` has not been changed.
69+
- #30961 ci: add LLVM_SYMBOLIZER_PATH to Valgrind fuzz job
9070

91-
If you are using a `bind=...` configuration without `bind=...=onion` and rely
92-
on the previous implied behavior to accept incoming Tor connections at
93-
`127.0.0.1:8334`, you need to now make this explicit by using
94-
`bind=... bind=127.0.0.1:8334=onion`. (#22729)
71+
### Misc
9572

96-
- Bitcoin Core will now fail to start up if any of its P2P binds fail, rather
97-
than the previous behaviour where it would only abort startup if all P2P
98-
binds had failed. (#22729)
99-
100-
- UNIX domain sockets can now be used for proxy connections. Set `-onion` or `-proxy`
101-
to the local socket path with the prefix `unix:` (e.g. `-onion=unix:/home/me/torsocket`).
102-
(#27375)
103-
104-
- UNIX socket paths are now accepted for `-zmqpubrawblock` and `-zmqpubrawtx` with
105-
the format `-zmqpubrawtx=unix:/path/to/file` (#27679)
106-
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)
109-
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)
119-
120-
Mempool Policy Changes
121-
----------------------
122-
123-
- Transactions with version number set to 3 are now treated as standard on all networks (#29496),
124-
subject to opt-in Topologically Restricted Until Confirmation (TRUC) transaction policy as
125-
described in [BIP 431](https://github.com/bitcoin/bips/blob/master/bip-0431.mediawiki). The
126-
policy includes limits on spending unconfirmed outputs (#28948), eviction of a previous descendant
127-
if a more incentive-compatible one is submitted (#29306), and a maximum transaction size of 10,000vB
128-
(#29873). These restrictions simplify the assessment of incentive compatibility of accepting or
129-
replacing TRUC transactions, thus ensuring any replacements are more profitable for the node and
130-
making fee-bumping more reliable.
131-
132-
- Pay To Anchor (P2A) is a new standard witness output type for spending,
133-
a newly recognised output template. This allows for key-less anchor
134-
outputs, with compact spending conditions for additional efficiencies on
135-
top of an equivalent `sh(OP_TRUE)` output, in addition to the txid stability
136-
of the spending transaction.
137-
N.B. propagation of this output spending on the network will be limited
138-
until a sufficient number of nodes on the network adopt this upgrade. (#30352)
139-
140-
- Limited package RBF is now enabled, where the proposed conflicting package would result in
141-
a connected component, aka cluster, of size 2 in the mempool. All clusters being conflicted
142-
against must be of size 2 or lower. (#28984)
143-
144-
- The default value of the `-mempoolfullrbf` configuration option has been changed from 0 to 1,
145-
i.e. `mempoolfullrbf=1`. (#30493)
146-
147-
Updated RPCs
148-
------------
149-
150-
- The `dumptxoutset` RPC now returns the UTXO set dump in a new and
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)
155-
156-
- AssumeUTXO mainnet parameters have been added for height 840,000.
157-
This means the `loadtxoutset` RPC can now be used on mainnet with
158-
the matching UTXO set from that height. (#28553)
159-
160-
- The `warnings` field in `getblockchaininfo`, `getmininginfo` and
161-
`getnetworkinfo` now returns all the active node warnings as an array
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)
165-
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)
171-
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)
176-
177-
- RPC `scantxoutset` now returns 2 new fields in the "unspents" JSON array: `blockhash` and `confirmations`.
178-
See the scantxoutset help for details. (#30515)
179-
180-
- RPC `submitpackage` now allows 2 new arguments to be passed: `maxfeerate` and `maxburnamount`. See the
181-
subtmitpackage help for details. (#28950)
182-
183-
Changes to wallet-related RPCs can be found in the Wallet section below.
184-
185-
Updated REST APIs
186-
-----------------
187-
- Parameter validation for `/rest/getutxos` has been improved by rejecting
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)
191-
192-
Build System
193-
------------
194-
195-
- GCC 11.1 or later, or Clang 16.0 or later,
196-
are now required to compile Bitcoin Core. (#29091, #30263)
197-
198-
- The minimum required glibc to run Bitcoin Core is now
199-
2.31. This means that RHEL 8 and Ubuntu 18.04 (Bionic)
200-
are no-longer supported. (#29987)
201-
202-
- `--enable-lcov-branch-coverage` has been removed, given
203-
incompatibilities between lcov version 1 & 2. `LCOV_OPTS`
204-
should be used to set any options instead. (#30192)
205-
206-
Updated Settings
207-
----------------
208-
209-
- When running with `-alertnotify`, an alert can now be raised multiple
210-
times instead of just once. Previously, it was only raised when unknown
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)
215-
216-
Changes to GUI or wallet related settings can be found in the GUI or Wallet section below.
217-
218-
Wallet
219-
------
220-
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)
226-
227-
- A new `max_tx_weight` option has been added to the RPCs `fundrawtransaction`, `walletcreatefundedpsbt`, and `send`.
228-
It specifies the maximum transaction weight. If the limit is exceeded during funding, the transaction will not be built.
229-
The default value is 4,000,000 WU. (#29523)
230-
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)
234-
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)
238-
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)
241-
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)
245-
246-
GUI Changes
247-
-----------
248-
249-
- The "Migrate Wallet" menu allows users to migrate any legacy wallet in their wallet
250-
directory, regardless of the wallets loaded. (gui#824)
251-
252-
- The "Information" window now displays the maximum mempool size along with the
253-
mempool usage. (gui#825)
254-
255-
Low-level Changes
256-
=================
257-
258-
Tests
259-
-----
260-
261-
- The BIP94 timewarp attack mitigation is now active on the `regtest` network. (#30681)
262-
263-
- A new `-testdatadir` option has been added to `test_bitcoin` to allow specifying the
264-
location of unit test data directories. (#26564)
265-
266-
Blockstorage
267-
------------
268-
269-
- Block files are now XOR'd by default with a key stored in the blocksdir.
270-
Previous releases of Bitcoin Core or previous external software will not be able to read the blocksdir with a non-zero XOR-key.
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)
73+
- #31267 refactor: Drop deprecated space in `operator""_mst`
28574

28675
Credits
28776
=======
28877

289-
Thanks to everyone who directly contributed to this release:
290-
- 0xb10c
291-
- Alfonso Roman Zubeldia
292-
- Andrew Toth
293-
- AngusP
294-
- Anthony Towns
295-
- Antoine Poinsot
296-
- Anton A
297-
- Ava Chow
298-
- Ayush Singh
299-
- Ben Westgate
300-
- Brandon Odiwuor
301-
- brunoerg
302-
- bstin
303-
- Charlie
304-
- Christopher Bergqvist
305-
- Cory Fields
306-
- crazeteam
307-
- Daniela Brozzoni
308-
- David Gumberg
309-
- dergoegge
310-
- Edil Medeiros
311-
- Epic Curious
312-
- Fabian Jahr
31378
- fanquake
314-
- furszy
315-
- glozow
316-
- Greg Sanders
317-
- hanmz
318-
- Hennadii Stepanov
319-
- Hernan Marino
320-
- Hodlinator
321-
- ishaanam
322-
- ismaelsadeeq
323-
- Jadi
324-
- Jon Atack
325-
- josibake
326-
- jrakibi
327-
- kevkevin
328-
- kevkevinpal
329-
- Konstantin Akimov
33079
- laanwj
331-
- Larry Ruane
332-
- Lőrinc
333-
- Luis Schwab
334-
- Luke Dashjr
33580
- MarcoFalke
336-
- marcofleon
337-
- Marnix
338-
- Martin Saposnic
33981
- Martin Zumsande
340-
- Matt Corallo
341-
- Matthew Zipkin
342-
- Matt Whitlock
343-
- Max Edwards
344-
- Michael Dietz
345-
- Murch
346-
- nanlour
347-
- pablomartin4btc
348-
- Peter Todd
349-
- Pieter Wuille
350-
- @RandyMcMillan
351-
- RoboSchmied
352-
- Roman Zeyde
353-
- Ryan Ofsky
82+
- Marnix
35483
- Sebastian Falbesoner
355-
- Sergi Delgado Segura
356-
- Sjors Provoost
357-
- spicyzboss
358-
- StevenMia
359-
- stickies-v
360-
- stratospher
361-
- Suhas Daftuar
362-
- sunerok
363-
- tdb3
364-
- TheCharlatan
365-
- umiumi
366-
- Vasil Dimov
367-
- virtu
368-
- willcl-ark
84+
85+
Thanks to everyone who directly contributed to this release:
36986

37087
As well as to everyone that helped with translations on
37188
[Transifex](https://www.transifex.com/bitcoin/bitcoin/).

0 commit comments

Comments
 (0)