September 13, 2021, 04:07:52 PM | |
22.0 Release Notes
Bitcoin Core version 22.0 is now available from:
https://bitcoincore.org/bin/bitcoin-core-22.0/
Or through bittorrent
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
https://github.com/bitcoin/bitcoin/issues
To receive security and update notifications, please subscribe to:
https://bitcoincore.org/en/list/announcements/join/
How to Upgrade
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes in some cases), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac)
or bitcoind/bitcoin-qt (on Linux).
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
possible, but it might take some time if the data directory needs to be migrated. Old
wallet versions of Bitcoin Core are generally supported.
Compatibility
Bitcoin Core is supported and extensively tested on operating systems
using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.
From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported.
Notable changes
P2P and network changes
New and Updated RPCs
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
Build System
Files
New settings
Updated settings
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
Tools and Utilities
Wallet
GUI changes
Low-level changes
RPC
SHA256SUMS:
SHA256SUM Signatures
Bitcoin Core version 22.0 is now available from:
https://bitcoincore.org/bin/bitcoin-core-22.0/
Or through bittorrent
This release includes new features, various bug fixes and performance
improvements, as well as updated translations.
Please report bugs using the issue tracker at GitHub:
https://github.com/bitcoin/bitcoin/issues
To receive security and update notifications, please subscribe to:
https://bitcoincore.org/en/list/announcements/join/
How to Upgrade
If you are running an older version, shut it down. Wait until it has completely
shut down (which might take a few minutes in some cases), then run the
installer (on Windows) or just copy over /Applications/Bitcoin-Qt (on Mac)
or bitcoind/bitcoin-qt (on Linux).
Upgrading directly from a version of Bitcoin Core that has reached its EOL is
possible, but it might take some time if the data directory needs to be migrated. Old
wallet versions of Bitcoin Core are generally supported.
Compatibility
Bitcoin Core is supported and extensively tested on operating systems
using the Linux kernel, macOS 10.14+, and Windows 7 and newer. Bitcoin
Core should also work on most other Unix-like systems but is not as
frequently tested on them. It is not recommended to use Bitcoin Core on
unsupported systems.
From Bitcoin Core 22.0 onwards, macOS versions earlier than 10.14 are no longer supported.
Notable changes
P2P and network changes
- Added support for running Bitcoin Core as an
I2P (Invisible Internet Project) service
and connect to such services. See i2p.md for details. (#20685) - This release removes support for Tor version 2 hidden services in favor of Tor
v3 only, as the Tor network dropped support for Tor
v2 with the release of
Tor version 0.4.6. Henceforth, Bitcoin Core ignores Tor v2 addresses; it
neither rumors them over the network to other peers, nor stores them in memory
or to peers.dat. (#22050) - Added NAT-PMP port mapping support via
libnatpmp. (#18077)
New and Updated RPCs
- Due to BIP 350
being implemented, behavior for all RPCs that accept addresses is changed when
a native witness version 1 (or higher) is passed. These now require a Bech32m
encoding instead of a Bech32 one, and Bech32m encoding will be used for such
addresses in RPC output as well. No version 1 addresses should be created
for mainnet until consensus rules are adopted that give them meaning
(as will happen through BIP 341).
Once that happens, Bech32m is expected to be used for them, so this shouldn't
affect any production systems, but may be observed on other networks where such
addresses already have meaning (like signet). (#20861) - The getpeerinfo RPC returns two new boolean fields, bip152_hb_to and
bip152_hb_from, that respectively indicate whether we selected a peer to be
in compact blocks high-bandwidth mode or whether a peer selected us as a
compact blocks high-bandwidth peer. High-bandwidth peers send new block
announcements via a cmpctblock message rather than the usual inv/headers
announcements. See BIP 152 for more details. (#19776) - getpeerinfo no longer returns the following fields: addnode, banscore,
and whitelisted, which were previously deprecated in 0.21. Instead of
addnode, the connection_type field returns manual. Instead of
whitelisted, the permissions field indicates if the peer has special
privileges. The banscore field has simply been removed. (#20755) - The following RPCs: gettxout, getrawtransaction, decoderawtransaction,
decodescript, gettransaction, and REST endpoints: /rest/tx,
/rest/getutxos, /rest/block deprecated the following fields (which are no
longer returned in the responses by default): addresses, reqSigs.
The -deprecatedrpc=addresses flag must be passed for these fields to be
included in the RPC response. This flag/option will be available only for this major release, after which
the deprecation will be removed entirely. Note that these fields are attributes of
the scriptPubKey object returned in the RPC response. However, in the response
of decodescript these fields are top-level attributes, and included again as attributes
of the scriptPubKey object. (#20286) - When creating a hex-encoded bitcoin transaction using the bitcoin-tx utility
with the -json option set, the following fields: addresses, reqSigs are no longer
returned in the tx output of the response. (#20286) - The listbanned RPC now returns two new numeric fields: ban_duration and time_remaining.
Respectively, these new fields indicate the duration of a ban and the time remaining until a ban expires,
both in seconds. Additionally, the ban_created field is repositioned to come before banned_until. (#21602) - The setban RPC can ban onion addresses again. This fixes a regression introduced in version 0.21.0. (#20852)
- The getnodeaddresses RPC now returns a "network" field indicating the
network type (ipv4, ipv6, onion, or i2p) for each address. (#21594) - getnodeaddresses now also accepts a "network" argument (ipv4, ipv6, onion,
or i2p) to return only addresses of the specified network. (#21843) - The testmempoolaccept RPC now accepts multiple transactions (still experimental at the moment,
API may be unstable). This is intended for testing transaction packages with dependency
relationships; it is not recommended for batch-validating independent transactions. In addition to
mempool policy, package policies apply: the list cannot contain more than 25 transactions or have a
total size exceeding 101K virtual bytes, and cannot conflict with (spend the same inputs as) each other or
the mempool, even if it would be a valid BIP125 replace-by-fee. There are some known limitations to
the accuracy of the test accept: it's possible for testmempoolaccept to return "allowed"=True for a
group of transactions, but "too-long-mempool-chain" if they are actually submitted. (#20833) - addmultisigaddress and createmultisig now support up to 20 keys for
Segwit addresses. (#20867)
Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section below.
Build System
- Release binaries are now produced using the new guix-based build system.
The document has been updated accordingly.
Files
- The list of banned hosts and networks (via setban RPC) is now saved on disk
in JSON format in banlist.json instead of banlist.dat. banlist.dat is
only read on startup if banlist.json is not present. Changes are only written to the new
banlist.json. A future version of Bitcoin Core may completely ignore
banlist.dat. (#20966)
New settings
- The -natpmp option has been added to use NAT-PMP to map the listening port.
If both UPnP and NAT-PMP are enabled, a successful allocation from UPnP
prevails over one from NAT-PMP. (#18077)
Updated settings
Changes to Wallet or GUI related settings can be found in the GUI or Wallet section below.
- Passing an invalid -rpcauth argument now cause bitcoind to fail to start. (#20461)
Tools and Utilities
- A new CLI -addrinfo command returns the number of addresses known to the
node per network type (including Tor v2 versus v3) and total. This can be
useful to see if the node knows enough addresses in a network to use options
like -onlynet=<network> or to upgrade to this release of Bitcoin Core 22.0
that supports Tor v3 only. (#21595) - A new -rpcwaittimeout argument to bitcoin-cli sets the timeout
in seconds to use with -rpcwait. If the timeout expires,
bitcoin-cli will report a failure. (#21056)
Wallet
- External signers such as hardware wallets can now be used through the new RPC methods enumeratesigners and displayaddress. Support is also added to the send RPC call. This feature is experimental. See external-signer.md for details. (#16546)
- A new listdescriptors RPC is available to inspect the contents of descriptor-enabled wallets.
The RPC returns public versions of all imported descriptors, including their timestamp and flags.
For ranged descriptors, it also returns the range boundaries and the next index to generate addresses from. (#20226) - The bumpfee RPC is not available with wallets that have private keys
disabled. psbtbumpfee can be used instead. (#20891) - The fundrawtransaction, send and walletcreatefundedpsbt RPCs now support an include_unsafe option
that when true allows using unsafe inputs to fund the transaction.
Note that the resulting transaction may become invalid if one of the unsafe inputs disappears.
If that happens, the transaction must be funded with different inputs and republished. (#21359) - We now support up to 20 keys in multi() and sortedmulti() descriptors
under wsh(). (#20867) - Taproot descriptors can be imported into the wallet only after activation has occurred on the network (e.g. mainnet, testnet, signet) in use. See descriptors.md for supported descriptors.
GUI changes
- External signers such as hardware wallets can now be used. These require an external tool such as HWI to be installed and configured under Options -> Wallet. When creating a new wallet a new option "External signer" will appear in the dialog. If the device is detected, its name is suggested as the wallet name. The watch-only keys are then automatically imported. Receive addresses can be verified on the device. The send dialog will automatically use the connected device. This feature is experimental and the UI may freeze for a few seconds when performing these actions.
Low-level changes
RPC
- The RPC server can process a limited number of simultaneous RPC requests.
Previously, if this limit was exceeded, the RPC server would respond with
status code 500 (HTTP_INTERNAL_SERVER_ERROR).
Now it returns status code 503 (HTTP_SERVICE_UNAVAILABLE). (#18335) - Error codes have been updated to be more accurate for the following error cases (#18466):
- signmessage now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - verifymessage now returns RPC_INVALID_ADDRESS_OR_KEY (-5) if the
passed address is invalid. Previously returned RPC_TYPE_ERROR (-3). - verifymessage now returns RPC_TYPE_ERROR (-3) if the passed signature
is malformed. Previously returned RPC_INVALID_ADDRESS_OR_KEY (-5).
SHA256SUMS:
Code:
9547fa03574f8bde296f707c7d9f7d89827c75c5a28f84402578a4fa92a787ec bitcoin-22.0-aarch64-linux-gnu-debug.tar.gz
ac718fed08570a81b3587587872ad85a25173afa5f9fbbd0c03ba4d1714cfa3e bitcoin-22.0-aarch64-linux-gnu.tar.gz
80071e0ecd24edfec8a1972b495b9822c79a5d33c7123bff51688638aac97cab bitcoin-22.0-arm-linux-gnueabihf-debug.tar.gz
b8713c6c5f03f5258b54e9f436e2ed6d85449aa24c2c9972f91963d413e86311 bitcoin-22.0-arm-linux-gnueabihf.tar.gz
8f70852feb39078e02182563517d17bdfc4a12904cf1bdabbae95594d9a1e473 bitcoin-22.0-codesignatures-22.0.tar.gz
d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b bitcoin-22.0.tar.gz
bfc04a3c4e8b613bfd9359e54da6cc60f027860e9723f9a6bfd6f13873eb811f bitcoin-22.0-powerpc64-linux-gnu-debug.tar.gz
2cca5f99007d060aca9d8c7cbd035dfe2f040dd8200b210ce32cdf858479f70d bitcoin-22.0-powerpc64-linux-gnu.tar.gz
5f0bf1491bc8825ca1506f7cf586030f06bb17a563ccde92e8c75720022704e6 bitcoin-22.0-powerpc64le-linux-gnu-debug.tar.gz
91b1e012975c5a363b5b5fcc81b5b7495e86ff703ec8262d4b9afcfec633c30d bitcoin-22.0-powerpc64le-linux-gnu.tar.gz
59b16e63aa935f50fd2813efe7f137187fcf0fff84e3205a9c6cb462a8bb160c bitcoin-22.0-riscv64-linux-gnu-debug.tar.gz
9cc3a62c469fe57e11485fdd32c916f10ce7a2899299855a2e479256ff49ff3c bitcoin-22.0-riscv64-linux-gnu.tar.gz
3b3e2680f7d9304c13bfebaf6445ada40d72324b4b3e0a07de9db807389a6c5b bitcoin-22.0-osx-signed.dmg
52449aa894a6ce5653315e1260d0ce87c1d9f490afe3c92b44285710804b11ae bitcoin-22.0-osx-unsigned.dmg
f51156774c24c0ac5cc30237fa08aa17ed04a180dfd72c3e7d20fdc3f45806dc bitcoin-22.0-osx-unsigned.tar.gz
2744d199c3343b2d94faffdfb2c94d75a630ba27301a70e47b0ad30a7e0155e9 bitcoin-22.0-osx64.tar.gz
3a4f05657c048d3e9505bdb9c4fb3658e5e3d4233b0b93c1853e080620589765 bitcoin-22.0-x86_64-linux-gnu-debug.tar.gz
59ebd25dd82a51638b7a6bb914586201e67db67b919b2a1ff08925a7936d1b16 bitcoin-22.0-x86_64-linux-gnu.tar.gz
9169989d649937c0f9ebccd3ab088501328aa319fe9e91fc7ea8e8cf0fcccede bitcoin-22.0-win64-setup.exe
f890473d6d910d478f8ff08f9356d0305d19b46cf06e4fc3b5a49b0b684fd2a7 bitcoin-22.0-win-unsigned.tar.gz
0a97ebc8ae44913e3ef9c5b1ddd2af3a4ffb0ba25b6ab1ee8173e40e60499402 bitcoin-22.0-win64-debug.zip
ecc579d006230d6ffc5a5b7b53ce8c76477d37c1c7bad69694e9c2d69f00331d bitcoin-22.0-win64-setup-unsigned.exe
9485e4b52ed6cebfe474ab4d7d0c1be6d0bb879ba7246a8239326b2230a77eb1 bitcoin-22.0-win64.zip
ac718fed08570a81b3587587872ad85a25173afa5f9fbbd0c03ba4d1714cfa3e bitcoin-22.0-aarch64-linux-gnu.tar.gz
80071e0ecd24edfec8a1972b495b9822c79a5d33c7123bff51688638aac97cab bitcoin-22.0-arm-linux-gnueabihf-debug.tar.gz
b8713c6c5f03f5258b54e9f436e2ed6d85449aa24c2c9972f91963d413e86311 bitcoin-22.0-arm-linux-gnueabihf.tar.gz
8f70852feb39078e02182563517d17bdfc4a12904cf1bdabbae95594d9a1e473 bitcoin-22.0-codesignatures-22.0.tar.gz
d0e9d089b57048b1555efa7cd5a63a7ed042482045f6f33402b1df425bf9613b bitcoin-22.0.tar.gz
bfc04a3c4e8b613bfd9359e54da6cc60f027860e9723f9a6bfd6f13873eb811f bitcoin-22.0-powerpc64-linux-gnu-debug.tar.gz
2cca5f99007d060aca9d8c7cbd035dfe2f040dd8200b210ce32cdf858479f70d bitcoin-22.0-powerpc64-linux-gnu.tar.gz
5f0bf1491bc8825ca1506f7cf586030f06bb17a563ccde92e8c75720022704e6 bitcoin-22.0-powerpc64le-linux-gnu-debug.tar.gz
91b1e012975c5a363b5b5fcc81b5b7495e86ff703ec8262d4b9afcfec633c30d bitcoin-22.0-powerpc64le-linux-gnu.tar.gz
59b16e63aa935f50fd2813efe7f137187fcf0fff84e3205a9c6cb462a8bb160c bitcoin-22.0-riscv64-linux-gnu-debug.tar.gz
9cc3a62c469fe57e11485fdd32c916f10ce7a2899299855a2e479256ff49ff3c bitcoin-22.0-riscv64-linux-gnu.tar.gz
3b3e2680f7d9304c13bfebaf6445ada40d72324b4b3e0a07de9db807389a6c5b bitcoin-22.0-osx-signed.dmg
52449aa894a6ce5653315e1260d0ce87c1d9f490afe3c92b44285710804b11ae bitcoin-22.0-osx-unsigned.dmg
f51156774c24c0ac5cc30237fa08aa17ed04a180dfd72c3e7d20fdc3f45806dc bitcoin-22.0-osx-unsigned.tar.gz
2744d199c3343b2d94faffdfb2c94d75a630ba27301a70e47b0ad30a7e0155e9 bitcoin-22.0-osx64.tar.gz
3a4f05657c048d3e9505bdb9c4fb3658e5e3d4233b0b93c1853e080620589765 bitcoin-22.0-x86_64-linux-gnu-debug.tar.gz
59ebd25dd82a51638b7a6bb914586201e67db67b919b2a1ff08925a7936d1b16 bitcoin-22.0-x86_64-linux-gnu.tar.gz
9169989d649937c0f9ebccd3ab088501328aa319fe9e91fc7ea8e8cf0fcccede bitcoin-22.0-win64-setup.exe
f890473d6d910d478f8ff08f9356d0305d19b46cf06e4fc3b5a49b0b684fd2a7 bitcoin-22.0-win-unsigned.tar.gz
0a97ebc8ae44913e3ef9c5b1ddd2af3a4ffb0ba25b6ab1ee8173e40e60499402 bitcoin-22.0-win64-debug.zip
ecc579d006230d6ffc5a5b7b53ce8c76477d37c1c7bad69694e9c2d69f00331d bitcoin-22.0-win64-setup-unsigned.exe
9485e4b52ed6cebfe474ab4d7d0c1be6d0bb879ba7246a8239326b2230a77eb1 bitcoin-22.0-win64.zip
SHA256SUM Signatures
Code:
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEDMuq/Xai7OLM0xQd4v/VsdiMqX0FAmE7QY0ACgkQ4v/VsdiM
qX3Gcg/9H1KC6eJAfwJCLQHyRiu7F2cvRt27dPGOuGllKwxDAl5gVwclgK0YpykL
2mkj0A/JAhSY4n3DWGDve7617rkgZjUh1OmlR4VGckC11mufh5+FR0sRNbbwcR4R
LjIKJ56U89pPjMxrJyGCINSO/DwNVDefx6wOK3UxIH2trQrQcuNCD62U58B/+A99
7E/vUsGj/dItiLLGQ3f1Fx4zBSGECtyhi/3iiHutQqT1s1gmDLa3efxT8Dety1Z/
vwvZtJUrXoc550a+a/I6K2SK8pDr9ZAZ3XGmft+daHaT9gFPRbh+mfd9ZdTZceDi
eS/d3leYLPU3pFHZL21li78/nb9/bV8GCgMXtz7tX4lHmwnWAolp03JJ3QmaUwnG
47pxR5WqeexGQ9RbTepcFY5gHE496dVctTA74uE99QSHZ8GOHA4wFPiaY7zxHwSO
nx9H5R7v1fljF688RAqT6WU7iHgpemZsxHPUcYhf2kO5dk4TWvcn4jQ8bGssOv6b
ZFZs/qs4cWsfqCusfOxcK9Qsb3FD2etd3BOU+m4zDX22Vd2whBbIn4MtUA/h0s8C
FNpECJgNQBEmqHBDWrJBD8DP7PxhU2UJZGJKaazu7kEv19y0Pyv/dlT5Xo3nq2NP
n+msw3Q5hoYG/c9VlV/Am4NM8lxEM9BWz/6XbPvOFBKICQ8D3A0=
=MC+w
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQJHBAABCAAxFiEEFSgSMAeFyWRE0zNNF1ZXMuCOXkEFAmE6aeATHGFjaG93MTAx
iQIzBAABCAAdFiEEDMuq/Xai7OLM0xQd4v/VsdiMqX0FAmE7QY0ACgkQ4v/VsdiM
qX3Gcg/9H1KC6eJAfwJCLQHyRiu7F2cvRt27dPGOuGllKwxDAl5gVwclgK0YpykL
2mkj0A/JAhSY4n3DWGDve7617rkgZjUh1OmlR4VGckC11mufh5+FR0sRNbbwcR4R
LjIKJ56U89pPjMxrJyGCINSO/DwNVDefx6wOK3UxIH2trQrQcuNCD62U58B/+A99
7E/vUsGj/dItiLLGQ3f1Fx4zBSGECtyhi/3iiHutQqT1s1gmDLa3efxT8Dety1Z/
vwvZtJUrXoc550a+a/I6K2SK8pDr9ZAZ3XGmft+daHaT9gFPRbh+mfd9ZdTZceDi
eS/d3leYLPU3pFHZL21li78/nb9/bV8GCgMXtz7tX4lHmwnWAolp03JJ3QmaUwnG
47pxR5WqeexGQ9RbTepcFY5gHE496dVctTA74uE99QSHZ8GOHA4wFPiaY7zxHwSO
nx9H5R7v1fljF688RAqT6WU7iHgpemZsxHPUcYhf2kO5dk4TWvcn4jQ8bGssOv6b
ZFZs/qs4cWsfqCusfOxcK9Qsb3FD2etd3BOU+m4zDX22Vd2whBbIn4MtUA/h0s8C
FNpECJgNQBEmqHBDWrJBD8DP7PxhU2UJZGJKaazu7kEv19y0Pyv/dlT5Xo3nq2NP
n+msw3Q5hoYG/c9VlV/Am4NM8lxEM9BWz/6XbPvOFBKICQ8D3A0=
=MC+w
-----END PGP SIGNATURE-----
-----BEGIN PGP SIGNATURE-----
iQJHBAABCAAxFiEEFSgSMAeFyWRE0zNNF1ZXMuCOXkEFAmE6aeATHGFjaG93MTAx