1
- # Release notes now being edited on https://github.com/bitcoin-core/bitcoin-devwiki/wiki/22.0-Release-Notes-draft
2
-
3
1
* After branching off for a major version release of Bitcoin Core, use this
4
2
template to create the initial release notes draft.*
5
3
@@ -8,7 +6,7 @@ template to create the initial release notes draft.*
8
6
for the process.*
9
7
10
8
* Create the draft, named* "* version* Release Notes Draft"
11
- * (e.g. "0.20 .0 Release Notes Draft"), as a collaborative wiki in:*
9
+ * (e.g. "22 .0 Release Notes Draft"), as a collaborative wiki in:*
12
10
13
11
https://github.com/bitcoin-core/bitcoin-devwiki/wiki/
14
12
@@ -53,90 +51,15 @@ Core should also work on most other Unix-like systems but is not as
53
51
frequently tested on them. It is not recommended to use Bitcoin Core on
54
52
unsupported systems.
55
53
56
- From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported.
57
-
58
54
Notable changes
59
55
===============
60
56
61
57
P2P and network changes
62
58
-----------------------
63
59
64
- - This release removes support for Tor version 2 hidden services in favor of Tor
65
- v3 only, as the Tor network [ dropped support for Tor
66
- v2] ( https://blog.torproject.org/v2-deprecation-timeline ) with the release of
67
- Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it
68
- neither rumors them over the network to other peers, nor stores them in memory
69
- or to ` peers.dat ` . (#22050 )
70
-
71
- - Added NAT-PMP port mapping support via
72
- [ ` libnatpmp ` ] ( https://miniupnp.tuxfamily.org/libnatpmp.html ) . (#18077 )
73
-
74
60
Updated RPCs
75
61
------------
76
62
77
- - Due to [ BIP 350] ( https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki )
78
- being implemented, behavior for all RPCs that accept addresses is changed when
79
- a native witness version 1 (or higher) is passed. These now require a Bech32m
80
- encoding instead of a Bech32 one, and Bech32m encoding will be used for such
81
- addresses in RPC output as well. No version 1 addresses should be created
82
- for mainnet until consensus rules are adopted that give them meaning
83
- (e.g. through [ BIP 341] ( https://github.com/bitcoin/bips/blob/master/bip-0341.mediawiki ) ).
84
- Once that happens, Bech32m is expected to be used for them, so this shouldn't
85
- affect any production systems, but may be observed on other networks where such
86
- addresses already have meaning (like signet). (#20861 )
87
-
88
- - The ` getpeerinfo ` RPC returns two new boolean fields, ` bip152_hb_to ` and
89
- ` bip152_hb_from ` , that respectively indicate whether we selected a peer to be
90
- in compact blocks high-bandwidth mode or whether a peer selected us as a
91
- compact blocks high-bandwidth peer. High-bandwidth peers send new block
92
- announcements via a ` cmpctblock ` message rather than the usual inv/headers
93
- announcements. See BIP 152 for more details. (#19776 )
94
-
95
- - ` getpeerinfo ` no longer returns the following fields: ` addnode ` , ` banscore ` ,
96
- and ` whitelisted ` , which were previously deprecated in 0.21. Instead of
97
- ` addnode ` , the ` connection_type ` field returns manual. Instead of
98
- ` whitelisted ` , the ` permissions ` field indicates if the peer has special
99
- privileges. The ` banscore ` field has simply been removed. (#20755 )
100
-
101
- - The following RPCs: ` gettxout ` , ` getrawtransaction ` , ` decoderawtransaction ` ,
102
- ` decodescript ` , ` gettransaction ` , and REST endpoints: ` /rest/tx ` ,
103
- ` /rest/getutxos ` , ` /rest/block ` deprecated the following fields (which are no
104
- longer returned in the responses by default): ` addresses ` , ` reqSigs ` .
105
- The ` -deprecatedrpc=addresses ` flag must be passed for these fields to be
106
- included in the RPC response. This flag/option will be available only for this major release, after which
107
- the deprecation will be removed entirely. Note that these fields are attributes of
108
- the ` scriptPubKey ` object returned in the RPC response. However, in the response
109
- of ` decodescript ` these fields are top-level attributes, and included again as attributes
110
- of the ` scriptPubKey ` object. (#20286 )
111
-
112
- - When creating a hex-encoded bitcoin transaction using the ` bitcoin-tx ` utility
113
- with the ` -json ` option set, the following fields: ` addresses ` , ` reqSigs ` are no longer
114
- returned in the tx output of the response. (#20286 )
115
-
116
- - The ` listbanned ` RPC now returns two new numeric fields: ` ban_duration ` and ` time_remaining ` .
117
- Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires,
118
- both in seconds. Additionally, the ` ban_created ` field is repositioned to come before ` banned_until ` . (#21602 )
119
-
120
- - The ` getnodeaddresses ` RPC now returns a "network" field indicating the
121
- network type (ipv4, ipv6, onion, or i2p) for each address. (#21594 )
122
-
123
- - ` getnodeaddresses ` now also accepts a "network" argument (ipv4, ipv6, onion,
124
- or i2p) to return only addresses of the specified network. (#21843 )
125
-
126
- - The ` testmempoolaccept ` RPC now accepts multiple transactions (still experimental at the moment,
127
- API may be unstable). This is intended for testing transaction packages with dependency
128
- relationships; it is not recommended for batch-validating independent transactions. In addition to
129
- mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a
130
- total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or
131
- the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to
132
- the accuracy of the test accept: it's possible for ` testmempoolaccept ` to return "allowed"=True for a
133
- group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833 )
134
-
135
- - ` addmultisigaddress ` and ` createmultisig ` now support up to 20 keys for
136
- Segwit addresses. (#20867 )
137
-
138
- Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
139
-
140
63
New RPCs
141
64
--------
142
65
@@ -146,48 +69,15 @@ Build System
146
69
New settings
147
70
------------
148
71
149
- - The ` -natpmp ` option has been added to use NAT-PMP to map the listening port.
150
- If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP
151
- prevails over one from NAT-PMP. (#18077 )
152
-
153
72
Updated settings
154
73
----------------
155
74
156
- Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
157
-
158
- - Passing an invalid ` -rpcauth ` argument now cause bitcoind to fail to start. (#20461 )
159
-
160
75
Tools and Utilities
161
76
-------------------
162
77
163
- - A new CLI ` -addrinfo ` command returns the number of addresses known to the
164
- node per network type (including Tor v2 versus v3) and total. This can be
165
- useful to see if the node knows enough addresses in a network to use options
166
- like ` -onlynet=<network> ` or to upgrade to this release of Bitcoin Core 22.0
167
- that supports Tor v3 only. (#21595 )
168
-
169
- - A new ` -rpcwaittimeout ` argument to ` bitcoin-cli ` sets the timeout
170
- in seconds to use with ` -rpcwait ` . If the timeout expires,
171
- ` bitcoin-cli ` will report a failure. (#21056 )
172
-
173
78
Wallet
174
79
------
175
80
176
- - A new ` listdescriptors ` RPC is available to inspect the contents of descriptor-enabled wallets.
177
- The RPC returns public versions of all imported descriptors, including their timestamp and flags.
178
- For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226 )
179
-
180
- - The ` bumpfee ` RPC is not available with wallets that have private keys
181
- disabled. ` psbtbumpfee ` can be used instead. (#20891 )
182
-
183
- - The ` fundrawtransaction ` , ` send ` and ` walletcreatefundedpsbt ` RPCs now support an ` include_unsafe ` option
184
- that when ` true ` allows using unsafe inputs to fund the transaction.
185
- Note that the resulting transaction may become invalid if one of the unsafe inputs disappears.
186
- If that happens, the transaction must be funded with different inputs and republished. (#21359 )
187
-
188
- - We now support up to 20 keys in ` multi() ` and ` sortedmulti() ` descriptors
189
- under ` wsh() ` . (#20867 )
190
-
191
81
GUI changes
192
82
-----------
193
83
199
89
200
90
- ` getblockchaininfo ` now returns a new ` time ` field, that provides the chain tip time. (#22407 )
201
91
202
- - The RPC server can process a limited number of simultaneous RPC requests.
203
- Previously, if this limit was exceeded, the RPC server would respond with
204
- [ status code 500 (` HTTP_INTERNAL_SERVER_ERROR ` )] ( https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_server_errors ) .
205
- Now it returns status code 503 (` HTTP_SERVICE_UNAVAILABLE ` ). (#18335 )
206
-
207
- - Error codes have been updated to be more accurate for the following error cases (#18466 ):
208
- - ` signmessage ` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
209
- passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).
210
- - ` verifymessage ` now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
211
- passed address is invalid. Previously returned RPC_TYPE_ERROR (-3).
212
- - ` verifymessage ` now returns RPC_TYPE_ERROR (-3) if the passed signature
213
- is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5).
214
-
215
92
Tests
216
93
-----
217
94
0 commit comments