Post
Topic
Board Bitcoin Discussion
Re: Bitcoin Core 0.20.0 Released
by
darkweblinknews
on 26/06/2020, 08:48:07 UTC
0.20.0 Release Notes

Bitcoin Core version 0.20.0 is now available from:

https://bitcoincore.org/bin/bitcoin-core-0.20.0/

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.12+, 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 0.20.0 onwards, macOS versions earlier than 10.12 are no
longer supported. Additionally, Bitcoin Core does not yet change appearance
when macOS "dark mode" is activated.

Known Bugs

The process for generating the source code release ("tarball") has changed in an
effort to make it more complete, however, there are a few regressions in
this release:
  • The generated configure script is currently missing, and you will need to
      install autotools and run ./autogen.sh before you can run
      ./configure. This is the same as when checking out from git.
  • Instead of running make simply, you should instead run
      BITCOIN_GENBUILD_NO_GIT=1 make.

Notable changes

P2P and network changes
Removal of BIP61 reject network messages from Bitcoin Core

The -enablebip61 command line option to enable BIP61 has been removed.
(#17004)

This feature has been disabled by default since Bitcoin Core version 0.18.0.
Nodes on the network can not generally be trusted to send valid messages
(including reject messages), so this should only ever be used when
connected to a trusted node.  Please use the alternatives recommended
below if you rely on this removed feature:
  • Testing or debugging of implementations of the Bitcoin P2P network protocol
      should be done by inspecting the log messages that are produced by a recent
      version of Bitcoin Core. Bitcoin Core logs debug messages
      (-debug=<category>) to a stream (-printtoconsole) or to a file
      (-debuglogfile=<debug.log>).
  • Testing the validity of a block can be achieved by specific RPCs:
  • submitblock
  • getblocktemplate with 'mode' set to 'proposal' for blocks with
        potentially invalid POW
  • Testing the validity of a transaction can be achieved by specific RPCs:
  • sendrawtransaction
  • testmempoolaccept
  • Wallets should not assume a transaction has propagated to the network
      just because there are no reject messages.  Instead, listen for the
      transaction to be announced by other peers on the network.  Wallets
      should not assume a lack of reject messages means a transaction pays
      an appropriate fee.  Instead, set fees using fee estimation and use
      replace-by-fee to increase a transaction's fee if it hasn't confirmed
      within the desired amount of time.

The removal of BIP61 reject message support also has the following minor RPC
and logging implications:
  • testmempoolaccept and sendrawtransaction no longer return the P2P reject
      code when a transaction is not accepted to the mempool. They still return the
      verbal reject reason.
  • Log messages that previously reported the reject code when a transaction was
      not accepted to the mempool now no longer report the reject code. The reason
      for rejection is still reported.

Updated RPCs
  • The RPCs which accept descriptors now accept the new sortedmulti(...) descriptor
      type which supports multisig scripts where the public keys are sorted
      lexicographically in the resulting script.  (#17056)
  • The walletprocesspsbt and walletcreatefundedpsbt RPCs now include
      BIP32 derivation paths by default for public keys if we know them.
      This can be disabled by setting the bip32derivs parameter to
      false.  (#17264)
  • The bumpfee RPC's parameter totalFee, which was deprecated in
      0.19, has been removed.  (#18312)
  • The bumpfee RPC will return a PSBT when used with wallets that have
      private keys disabled.  (#16373)
  • The getpeerinfo RPC now includes a mapped_as field to indicate the
      mapped Autonomous System used for diversifying peer selection. See the
      -asmap configuration option described below in <em>New Settings</em>.  (#16702)
  • The createmultisig and addmultisigaddress RPCs now return an
      output script descriptor for the newly created address.  (#18032)

Build System
  • OpenSSL is no longer used by Bitcoin Core.  (#17265)
  • BIP70 support has been fully removed from Bitcoin Core. The
      --enable-bip70 option remains, but it will throw an error during configure.
      (#17165)
  • glibc 2.17 or greater is now required to run the release binaries. This
      retains compatibility with RHEL 7, CentOS 7, Debian 8 and Ubuntu 14.04 LTS. (#17538)
  • The source code archives that are provided with gitian builds no longer contain
      any autotools artifacts. Therefore, to build from such source, a user
      should run the ./autogen.sh script from the root of the unpacked archive.
      This implies that autotools and other required packages are installed on the
      user's system. (#18331)

New settings
  • New rpcwhitelist and rpcwhitelistdefault configuration parameters
      allow giving certain RPC users permissions to only some RPC calls.
      (#12763)
  • A new -asmap configuration option has been added to diversify the
      node's network connections by mapping IP addresses Autonomous System
      Numbers (ASNs) and then limiting the number of connections made to any
      single ASN.  See issue  #16599,
      PR #16702, and the
      bitcoind help for more information.  This option is experimental and
      subject to removal or breaking changes in future releases, so the
      legacy /16 prefix mapping of IP addresses remains the default.  (#16702)

Updated settings
  • All custom settings configured when Bitcoin Core starts are now
      written to the debug.log file to assist troubleshooting.  (#16115)
  • Importing blocks upon startup via the bootstrap.dat file no longer
      occurs by default. The file must now be specified with
      -loadblock=<file>.  (#17044)
  • The -debug=db logging category has been renamed to
      -debug=walletdb to distinguish it from coindb.  The -debug=db
      option has been deprecated and will be removed in the next major
      release.  (#17410)
  • The -walletnotify configuration parameter will now replace any %w
      in its argument with the name of the wallet generating the
      notification.  This is not supported on Windows. (#13339)

Removed settings
  • The -whitelistforcerelay configuration parameter has been removed after
      it was discovered that it was rendered ineffective in version 0.13 and
      hasn't actually been supported for almost four years.  (#17985)

GUI changes
  • The "Start Bitcoin Core on system login" option has been removed on macOS.
      (#17567)
  • In the Peers window, the details for a peer now displays a Mapped AS
      field to indicate the mapped Autonomous System used for diversifying
      peer selection. See the -asmap configuration option in <em>New
      Settings</em>, above.  (#18402)
  • A "known bug" announced
      in the release notes of version 0.18 has been fixed.  The issue
      affected anyone who simultaneously used multiple Bitcoin Core wallets
      and the GUI coin control feature. (#18894)
  • For watch-only wallets, creating a new transaction in the Send screen
      or fee bumping an existing transaction in the Transactions screen will
      automatically copy a Partially-Signed Bitcoin Transaction (PSBT) to
      the system clipboard.  This can then be pasted into an external
      program such as HWI for
      signing.  Future versions of Bitcoin Core should support a GUI option
      for finalizing and broadcasting PSBTs, but for now the debug console
      may be used with the finalizepsbt and sendrawtransaction RPCs.
      (#16944, #17492)

Wallet
  • The wallet now by default uses bech32 addresses when using RPC, and
      creates native segwit change outputs.  (#16884)
  • The way that output trust was computed has been fixed, which affects
      confirmed/unconfirmed balance status and coin selection.  (#16766)
  • The gettransaction, listtransactions and listsinceblock RPC
      responses now also include the height of the block that contains the
      wallet transaction, if any.  (#17437)
  • The getaddressinfo RPC has had its label field deprecated
      (re-enable for this release using the configuration parameter
      -deprecatedrpc=label).  The labels field is altered from returning
      JSON objects to returning a JSON array of label names (re-enable
      previous behavior for this release using the configuration parameter
      -deprecatedrpc=labelspurpose).  Backwards compatibility using the
      deprecated configuration parameters is expected to be dropped in the
      0.21 release.  (#17585, #17578)

Documentation changes

Low-level changes

Utilities
  • The bitcoin-cli utility used with the -getinfo parameter now
      returns a headers field with the number of downloaded block headers
      on the best headers chain (similar to the blocks field that is also
      returned) and a verificationprogress field that estimates how much
      of the best block chain has been synced by the local node.  The
      information returned no longer includes the protocolversion,
      walletversion, and keypoololdest fields.  (#17302, #17650)
  • The bitcoin-cli utility now accepts a -stdinwalletpassphrase
      parameter that can be used when calling the walletpassphrase and
      walletpassphrasechange RPCs to read the passphrase from standard
      input without echoing it to the terminal, improving security against
      anyone who can look at your screen.  The existing -stdinrpcpass
      parameter is also updated to not echo the passphrase. (#13716)

Command line
  • Command line options prefixed with main/test/regtest network names like
      -main.port=8333 -test.server=1 previously were allowed but ignored. Now
      they trigger "Invalid parameter" errors on startup. (#17482)

New RPCs
  • The dumptxoutset RPC outputs a serialized snapshot of the current
      UTXO set.  A script is provided in the contrib/devtools directory
      for generating a snapshot of the UTXO set at a particular block
      height.  (#16899)
  • The generatetodescriptor RPC allows testers using regtest mode to
      generate blocks that pay an arbitrary output script descriptor.
      (#16943)

Updated RPCs
  • The verifychain RPC default values are now static instead of
      depending on the command line options or configuration file
      (-checklevel, and -checkblocks). Users can pass in the RPC
      arguments explicitly when they don't want to rely on the default
      values. (#18541)
  • The getblockchaininfo RPC's verificationprogress field will no
      longer report values higher than 1.  Previously it would occasionally
      report the chain was more than 100% verified.  (#17328)

Tests
  • It is now an error to use an unqualified walletdir=path setting in
      the config file if running on testnet or regtest networks. The setting
      now needs to be qualified as chain.walletdir=path or placed in the
      appropriate [chain] section. (#17447)
  • -fallbackfee was 0 (disabled) by default for the main chain, but
      0.0002 by default for the test chains. Now it is 0 by default for all
      chains. Testnet and regtest users will have to add
      fallbackfee=0.0002 to their configuration if they weren't setting it
      and they want it to keep working like before. (#16524)

Build system
  • Support is provided for building with the Android Native Development
      Kit (NDK).  (#16110)



Code:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

081b30b0f1af95656242c83eef30bbf7216b1a30fa8e8f29b3b160fe520d28f6  bitcoin-0.20.0-aarch64-linux-gnu.tar.gz
05014c7ff00f4496b1f389f0961d807e04505d8721d5c6f69567f2a0ec1985cc  bitcoin-0.20.0-arm-linux-gnueabihf.tar.gz
34f377fee2c7adf59981dde7e41215765d47b466f773cf2673137d30495b2675  bitcoin-0.20.0-osx64.tar.gz
a6e44b928d9ac04f11d43e920f4971fbdf1e77a8c28f7c14fafdd741ca7bc99f  bitcoin-0.20.0-osx.dmg
5b9cae3aa4197d1e557ff236754f489bce877ebba2267ce33af79b2ca4a13af6  bitcoin-0.20.0-riscv64-linux-gnu.tar.gz
ec5a2358ee868d845115dc4fc3ed631ff063c57d5e0a713562d083c5c45efb28  bitcoin-0.20.0.tar.gz
0f1ea61a9aa9aba383a43bcdb5755b072cfff016b9c6bb0afa772a8685bcf7b0  bitcoin-0.20.0-win64-setup.exe
3e9ddfa05b7967e43fb502b735b6c4d716ec06f63ab7183df2e006ed4a6a431f  bitcoin-0.20.0-win64.zip
35ec10f87b6bc1e44fd9cd1157e5dfa483eaf14d7d9a9c274774539e7824c427  bitcoin-0.20.0-x86_64-linux-gnu.tar.gz
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iQIcBAEBCAAGBQJe13SYAAoJEJDIAZ42wulkYrwQAIcbo6TAtb0AZkyC4ewM7+80
nQZTx7d0w9ljdr/0Wt9B/2F6BNhiW2TR1n+tYZ//Juk+kH79qQSVwsBSSdMpQJOR
7hlivCHUx5fwJEhtP7mEtuMnu/9o1YOX5lahPV3Yjfv8l3zdec6Dwlf6OAsPX8Dc
PAiWfhu/UplQnnI1U47LctwqTD6F5ywYunQ4U7S6Qfd8jqvQUTT7JQ68au1P1oHM
29/FCc9Qx7KbSVDgRWe9cjok7R6XRal1rQUz/4HW9OClRDUAsQym0Kxf3OzJVgJi
5hUq666Ld/rh7jQVjlMkSK8vrQn6VaNKk15q8TM238kRwj932zeZn9swkPaNf6ml
+pKFu7HxZhYpACa97vlHwEais4e/mVanTI5MBtt2POTT5ffkSD3isTfkiPHgYV3D
rTo4pmhAcFiOkXWcuNe5yWV2zZFkwy0gRgL/aNwHc3jnuv3foMkgS4SApL1/RnUs
hFf/Ce299c7WQa73tupHUJI0PrTggvvQHniGEZdomlFxaEzcTbOIW3Ao5IizZ5Yw
Aaum8n5/lRQgUMOQgF6EeWxEMKoqCA3wZITZ6mqoJBega52o3anZam5Lu+UKqhLV
a7May7n6L4acZkeJLKeJ4cMSsQYQ45Cc3dQJTmEmNicL9ix/crig38mKGLi7Sj6T
s3iI+NZb2h7g7gYg93MF
=e/wL
-----END PGP SIGNATURE-----