summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuke Dashjr <luke@dashjr.org>2019-05-04 02:50:02 +0000
committerbitcoindev <bitcoindev@gnusha.org>2019-05-04 02:50:38 +0000
commitcdb04d3cec28d926c10b4e00ace78eef5e225b5f (patch)
tree4bf1ce947deaca379a71a21ad2291f14e9ad2368
parent558d0b0cb5332db9469e243034ac00e64a51cf32 (diff)
downloadpi-bitcoindev-cdb04d3cec28d926c10b4e00ace78eef5e225b5f.tar.gz
pi-bitcoindev-cdb04d3cec28d926c10b4e00ace78eef5e225b5f.zip
[bitcoin-dev] Bitcoin Knots 0.18.0.knots20190502 released
-rw-r--r--d5/ff26067fbd00c489afa0302626fcc857d038621611
1 files changed, 1611 insertions, 0 deletions
diff --git a/d5/ff26067fbd00c489afa0302626fcc857d03862 b/d5/ff26067fbd00c489afa0302626fcc857d03862
new file mode 100644
index 000000000..6189ad881
--- /dev/null
+++ b/d5/ff26067fbd00c489afa0302626fcc857d03862
@@ -0,0 +1,1611 @@
+Return-Path: <luke@dashjr.org>
+Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org
+ [172.17.192.35])
+ by mail.linuxfoundation.org (Postfix) with ESMTPS id 886883EA0
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 4 May 2019 02:50:38 +0000 (UTC)
+X-Greylist: from auto-whitelisted by SQLgrey-1.7.6
+Received: from zinan.dashjr.org (zinan.dashjr.org [192.3.11.21])
+ by smtp1.linuxfoundation.org (Postfix) with ESMTP id E7FDA87
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 4 May 2019 02:50:33 +0000 (UTC)
+Received: from ishibashi.lan (adsl-98-70-226-33.gnv.bellsouth.net
+ [98.70.226.33]) (Authenticated sender: luke-jr)
+ by zinan.dashjr.org (Postfix) with ESMTPSA id 97D5E38A0C76
+ for <bitcoin-dev@lists.linuxfoundation.org>;
+ Sat, 4 May 2019 02:50:30 +0000 (UTC)
+X-Hashcash: 1:25:190504:bitcoin-dev@lists.linuxfoundation.org::UqcUBYbk5YKItUEY:bNrO
+From: Luke Dashjr <luke@dashjr.org>
+To: Bitcoin development mailing list <bitcoin-dev@lists.linuxfoundation.org>
+Date: Sat, 4 May 2019 02:50:02 +0000
+User-Agent: KMail/1.9.10
+MIME-Version: 1.0
+Content-Type: multipart/signed; boundary="nextPart5828916.evidevtqpS";
+ protocol="application/pgp-signature"; micalg=pgp-sha1
+Content-Transfer-Encoding: 7bit
+Message-Id: <201905040250.10240.luke@dashjr.org>
+X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,BIGNUM_EMAILS,
+ RCVD_IN_DNSWL_MED autolearn=no version=3.3.1
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+ smtp1.linux-foundation.org
+X-Mailman-Approved-At: Sun, 05 May 2019 02:29:53 +0000
+Subject: [bitcoin-dev] Bitcoin Knots 0.18.0.knots20190502 released
+X-BeenThere: bitcoin-dev@lists.linuxfoundation.org
+X-Mailman-Version: 2.1.12
+Precedence: list
+List-Id: Bitcoin Protocol Discussion <bitcoin-dev.lists.linuxfoundation.org>
+List-Unsubscribe: <https://lists.linuxfoundation.org/mailman/options/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=unsubscribe>
+List-Archive: <http://lists.linuxfoundation.org/pipermail/bitcoin-dev/>
+List-Post: <mailto:bitcoin-dev@lists.linuxfoundation.org>
+List-Help: <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=help>
+List-Subscribe: <https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev>,
+ <mailto:bitcoin-dev-request@lists.linuxfoundation.org?subject=subscribe>
+X-List-Received-Date: Sat, 04 May 2019 02:50:38 -0000
+
+--nextPart5828916.evidevtqpS
+Content-Type: text/plain;
+ charset="utf-8"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: inline
+
+Bitcoin Knots version *0.18.0.knots20190502* is now available from:
+
+ <https://bitcoinknots.org/files/0.18.x/0.18.0.knots20190502/>
+
+This is a new major version release, including 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/bitcoinknots/bitcoin/issues>
+
+How to Upgrade
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+If you are running an older version, shut it down. Wait until it has
+completely shut down (which might take a few minutes for older
+versions), then run the installer (on Windows) or just copy over
+`/Applications/Bitcoin-Qt` (on Mac) or `bitcoind`/`bitcoin-qt` (on
+Linux).
+
+The first time you run version 0.15.0 or newer, your chainstate database
+will be converted to a new format, which will take anywhere from a few
+minutes to half an hour, depending on the speed of your machine.
+
+Note that the block database format also changed in version 0.8.0 and
+there is no automatic upgrade code from before version 0.8 to version
+0.15.0 or later. Upgrading directly from 0.7.x and earlier without
+redownloading the blockchain is not supported. However, as usual, old
+wallet versions are still supported.
+
+Compatibility
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Bitcoin Knots is supported on operating systems using the Linux kernel,
+macOS 10.10+, and Windows 7 and newer. It is not recommended to use
+Bitcoin Knots on unsupported systems.
+
+=46rom 0.17.0 onwards, macOS <10.10 is no longer supported. 0.17.0 is
+built using Qt 5.9.x, which doesn't support versions of macOS older than
+10.10. Additionally, Bitcoin Knots does not yet change appearance when
+macOS "dark mode" is activated.
+
+In addition to previously-supported CPU platforms, this release's
+pre-compiled distribution also provides binaries for the RISC-V
+platform.
+
+If you are using the `systemd` unit configuration file located at
+`contrib/init/bitcoind.service`, it has been changed to use
+`/var/lib/bitcoind` as the data directory instead of
+`~bitcoin/.bitcoin`. When switching over to the new configuration file,
+please make sure that the filesystem on which `/var/lib/bitcoind` will
+exist has enough space (check using `df -h /var/lib/bitcoind`), and
+optionally copy over your existing data directory. See the [systemd init
+file section](#systemd-init-file) for more details.
+
+Known issues
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Wallet GUI
+=2D---------
+
+=46or advanced users who have both (1) enabled coin control features, and
+(2) are using multiple wallets loaded at the same time: The coin control
+input selection dialog can erroneously retain wrong-wallet state when
+switching wallets using the dropdown menu. For now, it is recommended
+not to use coin control features with multiple wallets loaded.
+
+Notable changes
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+Policy
+=2D-----
+
+=2D Previously, transactions sending to future Bech32 address versions
+ would be rejected, which could lead to stuck transactions, locking
+ up change. This has been relaxed by default to mitigate the issue.
+ For 0.18.0, the `-sendtofuture=3D0` option (also available in the
+ GUI Mempool Settings tab) can restore the old policy, but this is
+ discouraged, and will be removed in the future.
+
+Mining
+=2D-----
+
+=2D Calls to `getblocktemplate` will fail if the segwit rule is not
+ specified. Calling `getblocktemplate` without segwit specified is
+ almost certainly a misconfiguration since doing so results in lower
+ rewards for the miner. Failed calls will produce an error message
+ describing how to enable the segwit rule.
+
+=2D By default, blocks mined with Bitcoin Knots will be limited to 300k
+ in size, or 1.5 MWU in weight. Note these defaults are just healthy
+ recommendations, and can be overridden with the `-blockmaxsize` and
+ `-blockmaxweight` options.
+
+Configuration option changes
+=2D---------------------------
+
+=2D A warning is printed if an unrecognized section name is used in the
+ configuration file. Recognized sections are `[test]`, `[main]`, and
+ `[regtest]`.
+
+=2D The `rpcallowip` option can no longer be used to automatically listen
+ on all network interfaces. Instead, the `rpcbind` parameter must be
+ used to specify the IP addresses to listen on. Listening for RPC
+ commands over a public network connection is insecure and should be
+ disabled, so a warning is now printed if a user selects such a
+ configuration. If you need to expose RPC in order to use a tool like
+ Docker, ensure you only bind RPC to your localhost, e.g. `docker run
+ [...] -p 127.0.0.1:8332:8332` (this is an extra `:8332` over the
+ normal Docker port specification).
+
+=2D The `rpcpassword` option now causes a startup error if the password
+ set in the configuration file contains a hash character (#), as it's
+ ambiguous whether the hash character is meant for the password or as a
+ comment.
+
+=2D The `whitelistforcerelay` option is used to relay transactions from
+ whitelisted peers even when not accepted to the mempool. This option
+ now defaults to being off, so that changes in policy and
+ disconnect/ban behavior will not cause a node that is whitelisting
+ another to be dropped by peers. Users can still explicitly enable
+ this behavior with the command line option (and may want to consider
+ [contacting](https://bitcoincore.org/en/contact/) the Bitcoin Core
+ project to let us know about their use-case, as this feature could be
+ deprecated in the future).
+
+=2D The `startupnotify` option is used to specify a command to execute when
+ Bitcoin Knots has finished with its startup sequence.
+
+systemd init file
+=2D----------------
+
+The systemd init file (`contrib/init/bitcoind.service`) has been changed
+to use `/var/lib/bitcoind` as the data directory instead of
+`~bitcoin/.bitcoin`. This change makes Bitcoin Knots more consistent with
+other services, and makes the systemd init config more consistent with
+existing Upstart and OpenRC configs.
+
+The configuration, PID, and data directories are now completely managed
+by systemd, which will take care of their creation, permissions, etc.
+See [`systemd.exec(5)`]
+(https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Runtime=
+Directory=3D)
+for more details.
+
+When using the provided init files under `contrib/init`, overriding the
+`datadir` option in `/etc/bitcoin/bitcoin.conf` will have no effect.
+This is because the command line arguments specified in the init files
+take precedence over the options specified in
+`/etc/bitcoin/bitcoin.conf`.
+
+
+Documentation
+=2D------------
+
+=2D A new short [document]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md)
+ about the JSON-RPC interface describes cases where the results of an
+ RPC might contain inconsistencies between data sourced from different
+ subsystems, such as wallet state and mempool state. A note is added
+ to the [REST interface documentation]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md)
+ indicating that the same rules apply.
+
+=2D Further information is added to the [JSON-RPC
+ documentation]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/JSON-RPC-interface.md)
+ about how to secure this interface.
+
+=2D A new [document]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/bitcoin-conf.md)
+ about the `bitcoin.conf` file describes how to use it to configure
+ Bitcoin Knots.
+
+=2D A new document introduces Bitcoin Knots's BIP174 [Partially-Signed
+ Bitcoin Transactions
+ (PSBT)](https://github.com/bitcoin/bitcoin/blob/master/doc/psbt.md)
+ interface, which is used to allow multiple programs to collaboratively
+ work to create, sign, and broadcast new transactions. This is useful
+ for offline (cold storage) wallets, multisig wallets, coinjoin
+ implementations, and many other cases where two or more programs need
+ to interact to generate a complete transaction.
+
+=2D The [output script
+ descriptor]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md)
+ documentation has been updated with information about new features in
+ this still-developing language for describing the output scripts that
+ a wallet or other program wants to receive notifications for, such as
+ which addresses it wants to know received payments. The language is
+ currently used in multiple new and updated RPCs described in these
+ release notes and is expected to be adapted to other RPCs and to the
+ underlying wallet structure.
+
+Build system changes
+=2D-------------------
+
+=2D The minimum required version of Qt (when building the GUI) has been
+ increased from 5.2 to 5.5.1 (the [depends
+ system](https://github.com/bitcoin/bitcoin/blob/master/depends/README.md)
+ provides 5.9.7)
+
+New RPCs
+=2D-------
+
+=2D `listwalletdir` returns a list of wallets in the wallet directory
+ (either the default wallet directory or the directory configured by
+ the `-walletdir` parameter).
+
+=2D `getrpcinfo` returns runtime details of the RPC server. At the moment,
+ it returns an array of the currently active commands and how long
+ they've been running.
+
+=2D `deriveaddresses` returns one or more addresses corresponding to an
+ [output descriptor]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md).
+
+=2D `getdescriptorinfo` accepts a descriptor and returns information about
+ it, including its computed checksum.
+
+=2D `joinpsbts` merges multiple distinct PSBTs into a single PSBT. The
+ multiple PSBTs must have different inputs. The resulting PSBT will
+ contain every input and output from all of the PSBTs. Any signatures
+ provided in any of the PSBTs will be dropped.
+
+=2D `analyzepsbt` examines a PSBT and provides information about what
+ the PSBT contains and the next steps that need to be taken in order
+ to complete the transaction. For each input of a PSBT, `analyzepsbt`
+ provides information about what information is missing for that
+ input, including whether a UTXO needs to be provided, what pubkeys
+ still need to be provided, which scripts need to be provided, and
+ what signatures are still needed. Every input will also list which
+ role is needed to complete that input, and `analyzepsbt` will also
+ list the next role in general needed to complete the PSBT.
+ `analyzepsbt` will also provide the estimated fee rate and estimated
+ virtual size of the completed transaction if it has enough
+ information to do so.
+
+=2D `utxoupdatepsbt` searches the set of Unspent Transaction Outputs
+ (UTXOs) to find the outputs being spent by the partial transaction.
+ PSBTs need to have the UTXOs being spent to be provided because
+ the signing algorithm requires information from the UTXO being spent.
+ For segwit inputs, only the UTXO itself is necessary. For
+ non-segwit outputs, the entire previous transaction is needed so
+ that signers can be sure that they are signing the correct thing.
+ Unfortunately, because the UTXO set only contains UTXOs and not full
+ transactions, `utxoupdatepsbt` will only add the UTXO for segwit
+ inputs.
+
+Updated RPCs
+=2D-----------
+
+Note: some low-level RPC changes mainly useful for testing are described
+in the Low-level Changes section below.
+
+=2D The mempool RPCs, such as `getrawmempool` with `verbose=3Dtrue`, now
+ return an additional "bip125-replaceable" value indicating whether the
+ transaction (or its unconfirmed ancestors) opts-in to asking nodes and
+ miners to replace it with a higher-feerate transaction spending any of
+ the same inputs.
+
+=2D `settxfee` previously silently ignored attempts to set the fee below
+ the allowed minimums. It now prints a warning. The special value of
+ "0" may still be used to request the minimum value.
+
+=2D `importmulti` has been updated to support P2WSH, P2WPKH, P2SH-P2WPKH,
+ and P2SH-P2WSH. Requests for P2WSH and P2SH-P2WSH accept an additional
+ `witnessscript` parameter.
+
+=2D `importmulti` now returns an additional `warnings` field for each
+ request with an array of strings explaining when fields are being
+ ignored or are inconsistent, if there are any.
+
+=2D `getaddressinfo` now returns an additional `solvable` boolean field
+ when Bitcoin Knots knows enough about the address's scriptPubKey,
+ optional redeemScript, and optional witnessScript in order for the
+ wallet to be able to generate an unsigned input spending funds sent to
+ that address.
+
+=2D The `getaddressinfo`, `listunspent`, and `scantxoutset` RPCs now
+ return an additional `desc` field that contains an output descriptor
+ containing all key paths and signing information for the address
+ (except for the private key). The `desc` field is only returned for
+ `getaddressinfo` and `listunspent` when the address is solvable.
+
+=2D `importprivkey` will preserve previously-set labels for addresses or
+ public keys corresponding to the private key being imported. For
+ example, if you imported a watch-only address with the label "cold
+ wallet" in earlier releases of Bitcoin Knots, subsequently importing
+ the private key would default to resetting the address's label to the
+ default empty-string label (""). In this release, the previous label
+ of "cold wallet" will be retained. If you optionally specify any
+ label besides the default when calling `importprivkey`, the new label
+ will be applied to the address.
+
+=2D See the [Mining](#mining) section for changes to `getblocktemplate`.
+
+=2D `getmininginfo` now omits `currentblocksize`, `currentblockweight` and
+ `currentblocktx` when a block was never assembled via RPC on this node.
+ `currentblocksize` is also omitted if the `-blockmaxsize` option is
+ set to 4 MB or larger (and therefore ineffective).
+
+=2D The `getrawtransaction` RPC & REST endpoints no longer check the
+ unspent UTXO set for a transaction. The remaining behaviors are as
+ follows: 1. If a blockhash is provided, check the corresponding block.
+ 2. If no blockhash is provided, check the mempool. 3. If no blockhash
+ is provided but txindex is enabled, also check txindex.
+
+=2D `unloadwallet` is now synchronous, meaning it will not return until
+ the wallet is fully unloaded.
+
+=2D `importmulti` now supports importing of addresses from descriptors. A
+ "desc" parameter can be provided instead of the "scriptPubKey" in a
+ request, as well as an optional range for ranged descriptors to
+ specify the start and end of the range to import. Descriptors with key
+ origin information imported through `importmulti` will have their key
+ origin information stored in the wallet for use with creating PSBTs.
+ More information about descriptors can be found
+ [here](https://github.com/bitcoin/bitcoin/blob/master/doc/descriptors.md).
+
+=2D `listunspent` has been modified so that it also returns
+ `witnessScript`, the witness script in the case of a P2WSH or
+ P2SH-P2WSH output.
+
+=2D `createwallet` now has an optional `blank` argument that can be used
+ to create a blank wallet. Blank wallets do not have any keys or HD
+ seed. They cannot be opened in software older than 0.18. Once a blank
+ wallet has a HD seed set (by using `sethdseed`) or private keys,
+ scripts, addresses, and other watch only things have been imported,
+ the wallet is no longer blank and can be opened in 0.17.x. Encrypting
+ a blank wallet will also set a HD seed for it.
+
+=2D `walletcreatefundedpsbt` now respects the `-walletrbf` option for its
+ default BIP125 RBF parameter.
+
+=2D `testmempoolaccept` and `sendrawtransaction` now accept a new `maxfeera=
+te`
+ parameter to help avoid accidentally exceeding a given fee rate.
+
+=2D `getmempoolinfo` now has a `loaded` key in the result to indicate
+ completed loading of the saved mempool cache (or that it was skipped or
+ absent).
+
+=2D `getmempoolinfo` now accepts an optional parameter to get a fee histogr=
+am
+ in the result.
+
+=2D `getwalletinfo` includes a `scanning` key in its result, which will be
+ either `false` (to indicate no scanning in progress), or progress
+ information.
+
+Deprecated or removed RPCs
+=2D-------------------------
+
+=2D `signrawtransaction` is removed after being deprecated and hidden
+ behind a special configuration option in version 0.17.0.
+
+=2D The 'account' API is removed after being deprecated in v0.17. The
+ 'label' API was introduced in v0.17 as a replacement for accounts.
+ See the [release notes from
+ v0.17]
+(https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-n=
+otes-0.17.0.md#label-and-account-apis-for-wallet)
+ for a full description of the changes from the 'account' API to the
+ 'label' API.
+
+=2D `addwitnessaddress` is removed after being deprecated in version
+ 0.16.0.
+
+=2D `generate` is deprecated and will be fully removed in a subsequent
+ major version. This RPC is only used for testing, but its
+ implementation reached across multiple subsystems (wallet and mining),
+ so it is being deprecated to simplify the wallet-node interface.
+ Projects that are using `generate` for testing purposes should
+ transition to using the `generatetoaddress` RPC, which does not
+ require or use the wallet component. Calling `generatetoaddress` with
+ an address returned by the `getnewaddress` RPC gives the same
+ functionality as the old `generate` RPC. To continue using `generate`
+ in this version, restart bitcoind with the `-deprecatedrpc=3Dgenerate`
+ configuration option.
+
+=2D Be reminded that parts of the `validateaddress` command have been
+ deprecated and moved to `getaddressinfo`. The following deprecated
+ fields have moved to `getaddressinfo`: `ismine`, `iswatchonly`,
+ `script`, `hex`, `pubkeys`, `sigsrequired`, `pubkey`, `embedded`,
+ `iscompressed`, `label`, `timestamp`, `hdkeypath`, `hdmasterkeyid`.
+
+=2D The `addresses` field has been removed from the `validateaddress`
+ and `getaddressinfo` RPC methods. This field was confusing since
+ it referred to public keys using their P2PKH address. Clients
+ should use the `embedded.address` field for P2SH or P2WSH wrapped
+ addresses, and `pubkeys` for inspecting multisig participants.
+
+=2D Due to apparent lack of interest, the `verifyscript` method has been
+ removed.
+
+REST changes
+=2D-----------
+
+=2D A new `/rest/blockhashbyheight/` endpoint is added for fetching the
+ hash of the block in the current best blockchain based on its height
+ (how many blocks it is after the Genesis Block). This replaces the
+ older `/rest/blockhash/` endpoint which did the same thing, and is
+ now deprecated. Note that the new API uses a HTTP 404 Not Found
+ response for heights beyond the current chain length, has inverted
+ the order of bytes for hex format, and uses a "blockhash" key for
+ JSON format.
+
+=2D The `/rest/mempool/info.json` endpoint now has a `loaded` key in the
+ result to indicate completed loading of the saved mempool cache (or that
+ it was skipped or absent).
+
+=2D A new REST `/rest/mempool/info/with_fee_histogram` endpoint parallels
+ `/rest/mempool/info`, but adds a fee histogram to the result.
+
+Graphical User Interface (GUI)
+=2D-----------------------------
+
+=2D In the Send tab, the checkbox for "pay only the required fee" has been
+ removed. Instead, the user can simply decrease the value in the
+ Custom Feerate field all the way down to the node's configured minimum
+ relay fee.
+
+=2D The special send-to-self transaction record type has been removed.
+ Instead, all such transactions (including old transactions) will now
+ be displayed as a pair of send and receive (or possibly multiple
+ receives, in some circumstances).
+
+=2D A new experimental Pairing tab has been added to assist in linking
+ other wallet software (for example, such as you might have on your
+ phone) with your node. Note that it is likely the pairing address
+ displayed will change in future versions, possibly requiring
+ re-pairing.
+
+=2D In the Overview tab, the watch-only balance will be the only balance
+ shown if the wallet was created using the `createwallet` RPC and the
+ `disable_private_keys` parameter was set to true.
+
+=2D The launch-on-startup option is no longer available on macOS if
+ compiled with macosx min version greater than 10.11 (use
+ CXXFLAGS=3D"-mmacosx-version-min=3D10.11"
+ CFLAGS=3D"-mmacosx-version-min=3D10.11" for setting the deployment sdk
+ version)
+
+=2D Tonal Bitcoin support is now stricter with font detection. If you
+ use Tonal Bitcoin and no longer have TBC unit options visible, try
+ another font and/or open an issue on GitHub.
+
+Tools
+=2D----
+
+=2D A new `bitcoin-wallet` tool is now distributed alongside Bitcoin
+ Knots's other executables. Without needing to use any RPCs, this tool
+ can currently create a new wallet file or display some basic
+ information about an existing wallet, such as whether the wallet is
+ encrypted, whether it uses an HD seed, how many transactions it
+ contains, and how many address book entries it has.
+
+=2D Due to apparent lack of interest, support for Script debugging has been
+ removed from libbitcoinconsensus.
+
+Planned changes
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+This section describes planned changes to Bitcoin Knots that may affect
+other Bitcoin software and services.
+
+Deprecated P2P messages
+=2D----------------------
+
+=2D BIP 61 reject messages are now deprecated. Reject messages have no use
+ case on the P2P network and are only logged for debugging by most
+ network nodes. Furthermore, they increase bandwidth and can be harmful
+ for privacy and security. It has been possible to disable BIP 61
+ messages since v0.17 with the `-enablebip61=3D0` option. BIP 61 messages
+ will be disabled by default in a future version, before being removed
+ entirely.
+
+Low-level changes
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+This section describes RPC changes mainly useful for testing, mostly not
+relevant in production. The changes are mentioned for completeness.
+
+RPC
+=2D--
+
+=2D The `submitblock` RPC previously returned the reason a rejected block
+ was invalid the first time it processed that block, but returned a
+ generic "duplicate" rejection message on subsequent occasions it
+ processed the same block. It now always returns the fundamental
+ reason for rejecting an invalid block and only returns "duplicate" for
+ valid blocks it has already accepted.
+
+=2D A new `submitheader` RPC allows submitting block headers independently
+ from their block. This is likely only useful for testing.
+
+=2D The `signrawtransactionwithkey` and `signrawtransactionwithwallet`
+ RPCs have been modified so that they also optionally accept a
+ `witnessScript`, the witness script in the case of a P2WSH or
+ P2SH-P2WSH output. This is compatible with the change to
+ `listunspent`.
+
+=2D For the `walletprocesspsbt` and `walletcreatefundedpsbt` RPCs, if the
+ `bip32derivs` parameter is set to true but the key metadata for a
+ public key has not been updated yet, then that key will have a
+ derivation path as if it were just an independent key (i.e. no
+ derivation path and its master fingerprint is itself).
+
+Configuration
+=2D------------
+
+=2D The `-usehd` configuration option was removed in version 0.16. From
+ that version onwards, all new wallets created are hierarchical
+ deterministic wallets. This release makes specifying `-usehd` an
+ invalid configuration option.
+
+Network
+=2D------
+
+=2D This release allows peers that your node automatically disconnected
+ for misbehavior (e.g. sending invalid data) to reconnect to your node
+ if you have unused incoming connection slots. If your slots fill up,
+ a misbehaving node will be disconnected to make room for nodes without
+ a history of problems (unless the misbehaving node helps your node in
+ some other way, such as by connecting to a part of the Internet from
+ which you don't have many other peers). Previously, Bitcoin Knots
+ banned the IP addresses of misbehaving peers for a period of time
+ (default of 1 day); this was easily circumvented by attackers with
+ multiple IP addresses. If you manually ban a peer, such as by using
+ the `setban` RPC, all connections from that peer will still be
+ rejected.
+
+Wallet
+=2D------
+
+=2D The key metadata will need to be upgraded the first time that the HD
+ seed is available. For unencrypted wallets this will occur on wallet
+ loading. For encrypted wallets this will occur the first time the
+ wallet is unlocked.
+
+=2D Newly encrypted wallets will no longer require restarting the
+ software. Instead such wallets will be completely unloaded and
+ reloaded to achieve the same effect.
+
+=2D A sub-project of Bitcoin Core now provides Hardware Wallet Interaction
+ (HWI) scripts that allow command-line users to use several popular
+ hardware key management devices with Bitcoin Knots. See their [project
+ page](https://github.com/bitcoin-core/HWI#readme) for details.
+
+Security
+=2D-------
+
+=2D This release changes the Random Number Generator (RNG) used from
+ OpenSSL to Bitcoin Core's implementation, although entropy gathered
+ by Bitcoin Knots is fed out to OpenSSL and then read back in when the
+ program needs strong randomness. This moves Bitcoin Knots a little
+ closer to no longer needing to depend on OpenSSL, a dependency that
+ has caused security issues in the past. The new implementation
+ gathers entropy from multiple sources, including from hardware
+ supporting the rdseed CPU instruction.
+
+0.18.0 change log
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
+
+### Consensus
+=2D n/a *Update checkpoints and chain params, adding a new checkpoint at bl=
+ock=20
+571,392 (luke-jr)
+
+### Policy
+=2D #15846 *Policy-accept sending to future native witness outputs=20
+with -sendtofuture=3D1 (luke-jr)
+=2D #15846 *Policy: Enable -sendtofuture=3D1 by default (except with -corep=
+olicy)=20
+(luke-jr)
+=2D n/a *Reduce default block size/weight to a safer 300kB/1.5MWU (luke-jr)
+
+### Mining
+=2D #14811 Mining: Enforce that segwit option must be set in GBT (jnewbery)
+
+### Block and transaction handling
+=2D #13310 Report progress in ReplayBlocks while rolling forward (promag)
+=2D #13783 validation: Pass tx pool reference into CheckSequenceLocks=20
+(MarcoFalke)
+=2D #14834 validation: Assert that pindexPrev is non-null when required=20
+(kallewoof)
+=2D #14085 index: Fix for indexers skipping genesis block (jimpo)
+=2D #14963 mempool, validation: Explain `cs_main` locking semantics (MarcoF=
+alke)
+=2D #15193 Default `-whitelistforcerelay` to off (sdaftuar)
+=2D #15552 Granular invalidateblock and RewindBlockIndex (MarcoFalke)
+=2D #14841 Move CheckBlock() call to critical section (hebasto)
+=2D #15218 *validation: flush state after initial sync (andrewtoth)
+
+### P2P protocol and network code
+=2D #14025 Remove dead code for nVersion=3D10300 (MarcoFalke)
+=2D #12254 BIP 158: Compact Block Filters for Light Clients (jimpo)
+=2D #14073 blockfilter: Avoid out-of-bounds script access (jimpo)
+=2D #14140 Switch nPrevNodeCount to vNodesSize (pstratem)
+=2D #14027 Skip stale tip checking if outbound connections are off or if=20
+reindexing (gmaxwell)
+=2D #14532 Never bind `INADDR_ANY` by default, and warn when doing so expli=
+citly=20
+(luke-jr)
+=2D #14733 Make peer timeout configurable, speed up very slow test and ensu=
+re=20
+correct code path tested (zallarak)
+=2D #14336 Implement poll (pstratem)
+=2D #15051 IsReachable is the inverse of IsLimited (DRY). Includes unit tes=
+ts=20
+(mmachicao)
+=2D #15138 Drop IsLimited in favor of IsReachable (Empact)
+=2D #14605 Return of the Banman (dongcarl)
+=2D #14929 Allow connections from misbehavior banned peers (gmaxwell)
+=2D #15345 Correct comparison of addr count (dongcarl)
+=2D #15201 Add missing locking annotation for vNodes. vNodes is guarded by=
+=20
+cs_vNodes (practicalswift)
+=2D #14626 Select orphan transaction uniformly for eviction (sipa)
+=2D #15486 Ensure tried collisions resolve, and allow feeler connections to=
+=20
+existing outbound netgroups (sdaftuar)
+=2D #15558 *Do not query all DNS seed at once (sipa)
+=2D #15651 *torcontrol: Use the default/standard network port for Tor hidde=
+n=20
+services, even if the internal port is set differently (luke-jr)
+=2D #15423 *torcontrol: Query Tor for correct -onion configuration (luke-jr)
+=2D #15633 *Ignore BIP-152 HB requests from non-witness peers. (gmaxwell)
+
+### Wallet
+=2D #13962 Remove unused `dummy_tx` variable from FillPSBT (dongcarl)
+=2D #13967 Don't report `minversion` wallet entry as unknown (instagibbs)
+=2D #13988 Add checks for settxfee reasonableness (ajtowns)
+=2D #12559 Avoid locking `cs_main` in some wallet RPC (promag)
+=2D #13631 Add CMerkleTx::IsImmatureCoinBase method (Empact)
+=2D #14023 Remove accounts RPCs (jnewbery)
+=2D #13825 Kill accounts (jnewbery)
+=2D #10605 Add AssertLockHeld assertions in CWallet::ListCoins (ryanofsky)
+=2D #12490 Remove deprecated wallet rpc features from `bitcoin_server`=20
+(jnewbery)
+=2D #14138 Set `encrypted_batch` to nullptr after delete. Avoid double free=
+ in=20
+the case of NDEBUG (practicalswift)
+=2D #14168 Remove `ENABLE_WALLET` from `libbitcoin_server.a` (jnewbery)
+=2D #12493 Reopen CDBEnv after encryption instead of shutting down (achow10=
+1)
+=2D #14282 Remove `-usehd` option (jnewbery)
+=2D #14146 Remove trailing separators from `-walletdir` arg (PierreRochard)
+=2D #14291 Add ListWalletDir utility function (promag)
+=2D #14468 Deprecate `generate` RPC method (jnewbery)
+=2D #11634 Add missing `cs_wallet`/`cs_KeyStore` locks to wallet=20
+(practicalswift)
+=2D #14296 Remove `addwitnessaddress` (jnewbery)
+=2D #14451 Add BIP70 deprecation warning (jameshilliard)
+=2D #14320 Fix duplicate fileid detection (ken2812221)
+=2D #14561 Remove `fs::relative` call and fix listwalletdir tests (promag)
+=2D #14454 Add SegWit support to importmulti (MeshCollider)
+=2D #14350 Add WalletLocation class (promag)
+=2D #14689 Require a public key to be retrieved when signing a P2PKH input=
+=20
+(achow101)
+=2D #14478 Show error to user when corrupt wallet unlock fails (MeshCollide=
+r)
+=2D #14552 Detect duplicate wallet by comparing the db filename (ken2812221)
+=2D #14678 Remove redundant KeyOriginInfo access, already done in CreateSig=
+=20
+(instagibbs)
+=2D #14477 Add ability to convert solvability info to descriptor (sipa)
+=2D #14760 Log env path in `BerkeleyEnvironment::Flush` (promag)
+=2D #14646 Add expansion cache functions to descriptors (unused for now) (s=
+ipa)
+=2D #13076 Fix ScanForWalletTransactions to return an enum indicating scan=
+=20
+result: `success` / `failure` / `user_abort` (Empact)
+=2D #14821 Replace CAffectedKeysVisitor with descriptor based logic (sipa)
+=2D #14957 Initialize `stop_block` in CWallet::ScanForWalletTransactions=20
+(Empact)
+=2D #14565 Overhaul `importmulti` logic (sipa)
+=2D #15039 Avoid leaking nLockTime fingerprint when anti-fee-sniping=20
+(MarcoFalke)
+=2D #14268 Introduce SafeDbt to handle Dbt with free or `memory_cleanse`=20
+raii-style (Empact)
+=2D #14711 Remove uses of chainActive and mapBlockIndex in wallet code=20
+(ryanofsky)
+=2D #15279 Clarify rescanblockchain doc (MarcoFalke)
+=2D #15292 Remove `boost::optional`-related false positive -Wmaybe-uninitia=
+lized=20
+warnings on GCC compiler (hebasto)
+=2D #13926 [Tools] bitcoin-wallet - a tool for creating and managing wallet=
+s=20
+offline (jnewbery)
+=2D #11911 Free BerkeleyEnvironment instances when not in use (ryanofsky)
+=2D #15235 Do not import private keys to wallets with private keys disabled=
+=20
+(achow101)
+=2D #15263 Descriptor expansions only need pubkey entries for PKH/WPKH (sip=
+a)
+=2D #15322 Add missing `cs_db` lock (promag)
+=2D #15297 Releases dangling files on `BerkeleyEnvironment::Close` (promag)
+=2D #14491 Allow descriptor imports with importmulti (MeshCollider)
+=2D #15365 Add lock annotation for mapAddressBook (MarcoFalke)
+=2D #15226 Allow creating blank (empty) wallets (alternative) (achow101)
+=2D #15390 [wallet-tool] Close bdb when flushing wallet (jnewbery)
+=2D #15334 Log absolute paths for the wallets (hebasto)
+=2D #14978 Factor out PSBT utilities from RPCs for use in GUI code; related=
+=20
+refactoring (gwillen)
+=2D #14481 Add P2SH-P2WSH support to listunspent RPC (MeshCollider)
+=2D #14021 Import key origin data through descriptors in importmulti (achow=
+101)
+=2D #14075 Import watch only pubkeys to the keypool if private keys are dis=
+abled=20
+(achow101)
+=2D #15368 Descriptor checksums (sipa)
+=2D #15433 Use a single wallet batch for `UpgradeKeyMetadata` (jonasschnell=
+i)
+=2D #15408 Remove unused `TransactionError` constants (MarcoFalke)
+=2D #15583 Log and ignore errors in ListWalletDir and IsBerkeleyBtree (prom=
+ag)
+=2D #14195 Pass privkey export DER compression flag correctly (fingera)
+=2D #15299 Fix assertion in `CKey::SignCompact` (promag)
+=2D #14437 Start to separate wallet from node (ryanofsky)
+=2D #15749 Fix: importmulti only imports origin info for PKH outputs (sipa)
+=2D #15913 *Bugfix: dummywallet: Add -ignorepartialspends to list of ignore=
+d=20
+wallet options (luke-jr)
+=2D #15911 *[rpc] walletcreatefundedpsbt: use wallet default RBF (Sjors)
+=2D #9152 *RPC/Wallet: Use BroadcastTransaction for sweepprivkeys to ensure=
+=20
+wallet is synced before we return (luke-jr)
+=2D #13541 *wallet/rpc: add maxfeerate parameter to testmempoolaccept and=20
+sendrawtransaction (kallewoof)
+
+### RPC and other APIs
+=2D #12842 Prevent concurrent `savemempool` (promag)
+=2D #13891 Remove getinfo deprecation warning (jnewbery)
+=2D #13399 Add `submitheader` (MarcoFalke)
+=2D #13723 PSBT key path cleanups (sipa)
+=2D #14008 Preserve a format of RPC command definitions (kostyantyn)
+=2D #13983 Return more specific reject reason for submitblock (MarcoFalke)
+=2D #14298 rest: Improve performance for JSON calls (alecalve)
+=2D #14297 Remove warning for removed estimatefee RPC (jnewbery)
+=2D #14373 Consistency fixes for RPC descriptions (ch4ot1c)
+=2D #14150 Add key origin support to descriptors (sipa)
+=2D #14518 Always throw in getblockstats if `-txindex` is required (promag)
+=2D #13381 Add possibility to preserve labels on importprivkey (marcoagner)
+=2D #14530 Use `RPCHelpMan` to generate RPC doc strings (MarcoFalke)
+=2D #14720 Correctly name RPC arguments (MarcoFalke)
+=2D #14726 Use `RPCHelpMan` for all RPCs (MarcoFalke)
+=2D #14796 Pass argument descriptions to `RPCHelpMan` (MarcoFalke)
+=2D #14670 http: Fix HTTP server shutdown (promag)
+=2D #14885 Assert that named arguments are unique in `RPCHelpMan` (promag)
+=2D #14877 Document default values for optional arguments (MarcoFalke)
+=2D #14875 RPCHelpMan: Support required arguments after optional ones=20
+(MarcoFalke)
+=2D #14993 Fix data race (UB) in InterruptRPC() (practicalswift)
+=2D #14653 rpcwallet: Add missing transaction categories to RPC helptexts=20
+(andrewtoth)
+=2D #14981 Clarify RPC `getrawtransaction`'s time help text (benthecarman)
+=2D #12151 Remove `cs_main` lock from blockToJSON and blockheaderToJSON (pr=
+omag)
+=2D #15078 Document `bytessent_per_msg` and `bytesrecv_per_msg` (MarcoFalke)
+=2D #15057 Correct `reconsiderblock `help text, add test (MarcoFalke)
+=2D #12153 Avoid permanent `cs_main` lock in `getblockheader` (promag)
+=2D #14982 Add `getrpcinfo` command (promag)
+=2D #15122 Expand help text for `importmulti` changes (jnewbery)
+=2D #15186 remove duplicate solvable field from `getaddressinfo` (fanquake)
+=2D #15209 zmq: log outbound message high water mark when reusing socket=20
+(fanquake)
+=2D #15177 rest: Improve tests and documention of /headers and /block (prom=
+ag)
+=2D #14353 rest: Add blockhash call, fetch blockhash by height (jonasschnel=
+li)
+=2D #15248 Compile on GCC4.8 (MarcoFalke)
+=2D #14987 RPCHelpMan: Pass through Result and Examples (MarcoFalke)
+=2D #15159 Remove lookup to UTXO set from GetTransaction (amitiuttarwar)
+=2D #15245 remove deprecated mentions of signrawtransaction from fundraw he=
+lp=20
+(instagibbs)
+=2D #14667 Add `deriveaddresses` RPC util method (Sjors)
+=2D #15357 Don't ignore `-maxtxfee` when wallet is disabled (JBaczuk)
+=2D #15337 Fix for segfault if combinepsbt called with empty inputs=20
+(benthecarman)
+=2D #14918 RPCHelpMan: Check default values are given at compile-time=20
+(MarcoFalke)
+=2D #15383 mining: Omit uninitialized currentblockweight, currentblocktx=20
+(MarcoFalke)
+=2D #13932 Additional utility RPCs for PSBT (achow101)
+=2D #15401 Actually throw help when passed invalid number of params (MarcoF=
+alke)
+=2D #15497 Consistent range arguments in=20
+scantxoutset/importmulti/deriveaddresses (sipa)
+=2D #15510 deriveaddresses: add range to CRPCConvertParam (Sjors)
+=2D #15582 Fix overflow bug in analyzepsbt fee: CAmount instead of int (sip=
+a)
+=2D #13424 Consistently validate txid / blockhash length and encoding in rp=
+c=20
+calls (Empact)
+=2D #15750 Remove the addresses field from the getaddressinfo return object=
+=20
+(jnewbery)
+=2D n/a *Bugfix: httpserver: Close listen socket if we fail to make an evht=
+tp=20
+handle (luke-jr)
+=2D #15323 *rpc: Expose g_is_mempool_loaded via getmempoolinfo=20
+and /rest/mempool/info.json (Empact)
+=2D #15730 *rpc: Show scanning details in getwalletinfo (promag)
+=2D #15836 *Add feerate histogram to getmempoolinfo (jonasschnelli)
+=2D #15861 *rpc/gui: Refactor 'Unknown block versions being mined' warning=
+=20
+(luke-jr)
+=2D n/a *Removed verifyscript method (luke-jr)
+=2D n/a *Removed libbitcoinconsensus Script debugging support (luke-jr)
+=2D #15932 *rpc: Serialize in getblock without cs_main (MarcoFalke)
+
+### GUI
+=2D #13634 Compile `boost::signals2` only once (MarcoFalke)
+=2D #13248 Make proxy icon from statusbar clickable (mess110)
+=2D #13529 Use new Qt5 connect syntax (promag)
+=2D #14162 Also log and print messages or questions like bitcoind (MarcoFal=
+ke)
+=2D #14385 Avoid system harfbuzz and bz2 (theuni)
+=2D #14450 Fix QCompleter popup regression (hebasto)
+=2D #14177 Set C locale for amountWidget (hebasto)
+=2D #14374 Add `Blocksdir` to Debug window (hebasto)
+=2D #14554 Remove unused `adjustedTime` parameter (hebasto)
+=2D #14608 Remove the "Pay only required fee=E2=80=A6" checkbox (hebasto)
+=2D #14521 qt, docs: Fix `bitcoin-qt -version` output formatting (hebasto)
+=2D #13966 When private key is disabled, only show watch-only balance=20
+(ken2812221)
+=2D #14828 Remove hidden columns in coin control dialog (promag)
+=2D #14783 Fix `boost::signals2::no_slots_error` in early calls to InitWarn=
+ing=20
+(promag)
+=2D #14854 Cleanup SplashScreen class (hebasto)
+=2D #14801 Use window() instead of obsolete topLevelWidget() (hebasto)
+=2D #14975 Refactoring with QString::toNSString() (hebasto)
+=2D #15000 Fix broken notificator on GNOME (hebasto)
+=2D #14375 Correct misleading "overridden options" label (hebasto)
+=2D #15007 Notificator class refactoring (hebasto)
+=2D #14784 Use `WalletModel*` instead of the wallet name as map key (promag)
+=2D #11625 Add BitcoinApplication & RPCConsole tests (ryanofsky)
+=2D #13216 implements concept for different disk sizes on intro (marcoagner)
+=2D #15114 Replace remaining 0 with nullptr (Empact)
+=2D #14594 Fix minimized window bug on Linux (hebasto)
+=2D #14556 Fix confirmed transaction labeled "open" (#13299) (hebasto)
+=2D #15149 Show current wallet name in window title (promag)
+=2D #15136 "Peers" tab overhaul (hebasto)
+=2D #14250 Remove redundant stopThread() and stopExecutor() signals (hebast=
+o)
+=2D #15040 Add workaround for QProgressDialog bug on macOS (hebasto)
+=2D #15101 Add WalletController (promag)
+=2D #15178 Improve "help-console" message (hebasto)
+=2D #15210 Fix window title update (promag)
+=2D #15167 Fix wallet selector size adjustment (hebasto)
+=2D #15208 Remove macOS launch-at-startup when compiled with > macOS 10.11,=
+ fix=20
+memory mismanagement (jonasschnelli)
+=2D #15163 Correct units for "-dbcache" and "-prune" (hebasto)
+=2D #15225 Change the receive button to respond to keypool state changing=20
+(achow101)
+=2D #15280 Fix shutdown order (promag)
+=2D #15203 Fix issue #9683 "gui, wallet: random abort (segmentation fault)=
+=20
+(dooglus)
+=2D #15091 Fix model overlay header sync (jonasschnelli)
+=2D #15153 Add Open Wallet menu (promag)
+=2D #15183 Fix `m_assumed_blockchain_size` variable value (marcoagner)
+=2D #15063 If BIP70 is disabled, attempt to fall back to BIP21 parsing (luk=
+e-jr)
+=2D #15195 Add Close Wallet action (promag)
+=2D #15462 Fix async open wallet call order (promag)
+=2D #15801 Bugfix: GUI: Options: Initialise prune setting range before load=
+ing=20
+current value, and remove upper bound limit (luke-jr)
+=2D #11750 *CoinControl: Remove selection-only counter (luke-jr)
+=2D #15115 *Replace send-to-self with dual send+receive entries (luke-jr)
+=2D #15371 *Uppercase bech32 addresses in qr codes (benthecarman)
+=2D #15428 *Add Pairing tab with Tor onion address as copyable text and QR =
+code=20
+(luke-jr)
+=2D #7510 *Various improvements for pruning controls (luke-jr)
+=2D #929 *Bugfix: GUI: bitcoinunits: Don't make unitlist static, since it g=
+ets=20
+rebuilt every call (luke-jr)
+=2D #929 *tonalutils: For Tonal support detection, check that the font has =
+all=20
+glyphs and they all have the same sizes (luke-jr)
+=2D n/a *update receiving address book description to refer to receive tab =
+for=20
+new addresses (HatboyWonder)
+=2D n/a *Qt/Options: Configure sendtofuture using rwconf (luke-jr)
+
+### Build system
+=2D #13955 gitian: Bump descriptors for (0.)18 (fanquake)
+=2D #13899 Enable -Wredundant-decls where available. Remove redundant=20
+redeclarations (practicalswift)
+=2D #13665 Add RISC-V support to gitian (ken2812221)
+=2D #14062 Generate MSVC project files via python script (ken2812221)
+=2D #14037 Add README.md to linux release tarballs (hebasto)
+=2D #14183 Remove unused Qt 4 dependencies (ken2812221)
+=2D #14127 Avoid getifaddrs when unavailable (greenaddress)
+=2D #14184 Scripts and tools: increased timeout downloading (cisba)
+=2D #14204 Move `interfaces/*` to `libbitcoin_server` (laanwj)
+=2D #14208 Actually remove `ENABLE_WALLET` (jnewbery)
+=2D #14212 Remove libssl from LDADD unless GUI (MarcoFalke)
+=2D #13578 Upgrade zeromq to 4.2.5 and avoid deprecated zeromq API function=
+s=20
+(mruddy)
+=2D #14281 lcov: filter /usr/lib/ from coverage reports (MarcoFalke)
+=2D #14325 gitian: Use versioned unsigned tarballs instead of generically n=
+amed=20
+ones (achow101)
+=2D #14253 During 'make clean', remove some files that are currently missed=
+=20
+(murrayn)
+=2D #14455 Unbreak `make clean` (jamesob)
+=2D #14495 Warn (don't fail!) on spelling errors (practicalswift)
+=2D #14496 Pin to specific versions of Python packages we install from PyPI=
+ in=20
+Travis (practicalswift)
+=2D #14568 Fix Qt link order for Windows build (ken2812221)
+=2D #14252 Run functional tests and benchmarks under the undefined behaviou=
+r=20
+sanitizer (UBSan) (practicalswift)
+=2D #14612 Include full version number in released file names (achow101)
+=2D #14840 Remove duplicate libconsensus linking in test make (AmirAbrams)
+=2D #14883 Add `--retry 5` to curl opts in `install_db4.sh` (qubenix)
+=2D #14701 Add `CLIENT_VERSION_BUILD` to CFBundleGetInfoString (fanquake)
+=2D #14849 Qt 5.9.7 (fanquake)
+=2D #15020 Add names to Travis jobs (gkrizek)
+=2D #15047 Allow to configure --with-sanitizers=3Dfuzzer (MarcoFalke)
+=2D #15154 Configure: bitcoin-tx doesn't need libevent, so don't pull it in=
+=20
+(luke-jr)
+=2D #15175 Drop macports support (Empact)
+=2D #15308 Restore compatibility with older boost (Empact)
+=2D #15407 msvc: Fix silent merge conflict between #13926 and #14372 part I=
+I=20
+(ken2812221)
+=2D #15388 Makefile.am: add rule for src/bitcoin-wallet (Sjors)
+=2D #15393 Bump minimum Qt version to 5.5.1 (Sjors)
+=2D #15285 Prefer Python 3.4 even if newer versions are present on the syst=
+em=20
+(Sjors)
+=2D #15398 msvc: Add rapidcheck property tests (ken2812221)
+=2D #15431 msvc: scripted-diff: Remove NDEBUG pre-define in project file=20
+(ken2812221)
+=2D #15549 gitian: Improve error handling (laanwj)
+=2D #15548 use full version string in setup.exe (MarcoFalke)
+=2D #11526 Visual Studio build configuration for Bitcoin Core (sipsorcery)
+=2D #15110 build\_msvc: Fix the build problem in `libbitcoin_server` (Mr-Le=
+shiy)
+=2D #14372 msvc: build secp256k1 and leveldb locally (ken2812221)
+=2D #15325 msvc: Fix silent merge conflict between #13926 and #14372=20
+(ken2812221)
+=2D #15391 Add compile time verification of assumptions we're currently mak=
+ing=20
+implicitly/tacitly (practicalswift)
+=2D #15503 msvc: Use a single file to specify the include path (ken2812221)
+=2D #13765 contrib: Add gitian build support for github pull request=20
+(ken2812221)
+=2D #15809 gitignore: plist and dat (jamesob)
+
+### Tests and QA
+=2D #15405 appveyor: Clean cache when build configuration changes (Sjors)
+=2D #13953 Fix deprecation in bitcoin-util-test.py (isghe)
+=2D #13963 Replace usage of tostring() with tobytes() (dongcarl)
+=2D #13964 ci: Add appveyor ci (ken2812221)
+=2D #13997 appveyor: fetch the latest port data (ken2812221)
+=2D #13707 Add usage note to check-rpc-mappings.py (masonicboom)
+=2D #13861 Add testing of `value_ret` for SelectCoinsBnB (Empact)
+=2D #13863 travis: Move script sections to files in `.travis/` subject to=20
+shellcheck (scravy)
+=2D #14081 travis: Fix missing differentiation between unit and functional =
+tests=20
+(scravy)
+=2D #14042 travis: Add cxxflags=3D-wno-psabi at arm job (ken2812221)
+=2D #14051 Make `combine_logs.py` handle multi-line logs (jnewbery)
+=2D #14093 Fix accidental trunction from int to bool (practicalswift)
+=2D #14108 Add missing locking annotations and locks (`g_cs_orphans`)=20
+(practicalswift)
+=2D #14088 Don't assert(=E2=80=A6) with side effects (practicalswift)
+=2D #14086 appveyor: Use clcache to speed up build (ken2812221)
+=2D #13954 Warn (don't fail!) on spelling errors. Fix typos reported by=20
+codespell (practicalswift)
+=2D #12775 Integration of property based testing into Bitcoin Core (Christe=
+wart)
+=2D #14119 Read reject reasons from debug log, not P2P messages (MarcoFalke)
+=2D #14189 Fix silent merge conflict in `wallet_importmulti` (MarcoFalke)
+=2D #13419 Speed up `knapsack_solver_test` by not recreating wallet 100 tim=
+es=20
+(lucash-dev)
+=2D #14199 Remove redundant BIP174 test from `rpc_psbt.json` (araspitzu)
+=2D #14179 Fixups to "Run all tests even if wallet is not compiled" (MarcoF=
+alke)
+=2D #14225 Reorder tests and move most of extended tests up to normal tests=
+=20
+(ken2812221)
+=2D #14236 `generate` --> `generatetoaddress` change to allow tests run wit=
+hout=20
+wallet (sanket1729)
+=2D #14287 Use MakeUnique to construct objects owned by `unique_ptrs`=20
+(practicalswift)
+=2D #14007 Run functional test on Windows and enable it on Appveyor (ken281=
+2221)
+=2D #14275 Write the notification message to different files to avoid race=
+=20
+condition in `feature_notifications.py` (ken2812221)
+=2D #14306 appveyor: Move AppVeyor YAML to dot-file-style YAML (MitchellCas=
+h)
+=2D #14305 Enforce critical class instance attributes in functional tests, =
+fix=20
+segwit test specificity (JustinTArthur)
+=2D #14316 Exclude all tests with difference parameters in `--exclude` list=
+=20
+(ken2812221)
+=2D #14381 Add missing call to `skip_if_no_cli()` (practicalswift)
+=2D #14389 travis: Set codespell version to avoid breakage (MarcoFalke)
+=2D #14398 Don't access out of bounds array index: array[sizeof(array)] (Em=
+pact)
+=2D #14419 Remove `rpc_zmq.py` (jnewbery)
+=2D #14241 appveyor: Script improvement (ken2812221)
+=2D #14413 Allow closed RPC handler in `assert_start_raises_init_error`=20
+(ken2812221)
+=2D #14324 Run more tests with wallet disabled (MarcoFalke)
+=2D #13649 Allow arguments to be forwarded to flake8 in lint-python.sh (jam=
+esob)
+=2D #14465 Stop node before removing the notification file (ken2812221)
+=2D #14460 Improve 'CAmount' tests (hebasto)
+=2D #14456 forward timeouts properly in `send_blocks_and_test` (jamesob)
+=2D #14527 Revert "Make qt wallet test compatible with qt4" (MarcoFalke)
+=2D #14504 Show the progress of functional tests (isghe)
+=2D #14559 appveyor: Enable multiwallet tests (ken2812221)
+=2D #13515 travis: Enable qt for all jobs (ken2812221)
+=2D #14571 Test that nodes respond to `getdata` with `notfound` (MarcoFalke)
+=2D #14569 Print dots by default in functional tests (ken2812221)
+=2D #14631 Move deterministic address import to `setup_nodes` (jnewbery)
+=2D #14630 test: Remove travis specific code (MarcoFalke)
+=2D #14528 travis: Compile once on xenial (MarcoFalke)
+=2D #14092 Dry run `bench_bitcoin` as part `make check` to allow for quick=
+=20
+identification of assertion/sanitizer failures in benchmarking code=20
+(practicalswift)
+=2D #14664 `example_test.py`: fixup coinbase height argument, derive number=
+=20
+clearly (instagibbs)
+=2D #14522 Add invalid P2P message tests (jamesob)
+=2D #14619 Fix value display name in `test_runner` help text (merland)
+=2D #14672 Send fewer spam messages in `p2p_invalid_messages` (jamesob)
+=2D #14673 travis: Fail the ubsan travis build in case of newly introduced =
+ubsan=20
+errors (practicalswift)
+=2D #14665 appveyor: Script improvement part II (ken2812221)
+=2D #14365 Add Python dead code linter (vulture) to Travis (practicalswift)
+=2D #14693 `test_node`: `get_mem_rss` fixups (MarcoFalke)
+=2D #14714 util.h: explicitly include required QString header (1Il1)
+=2D #14705 travis: Avoid timeout on verify-commits check (MarcoFalke)
+=2D #14770 travis: Do not specify sudo in `.travis` (scravy)
+=2D #14719 Check specific reject reasons in `feature_block` (MarcoFalke)
+=2D #14771 Add `BOOST_REQUIRE` to getters returning optional (MarcoFalke)
+=2D #14777 Add regtest for JSON-RPC batch calls (domob1812)
+=2D #14764 travis: Run thread sanitizer on unit tests (MarcoFalke)
+=2D #14400 Add Benchmark to test input de-duplication worst case (JeremyRub=
+in)
+=2D #14812 Fix `p2p_invalid_messages` on macOS (jamesob)
+=2D #14813 Add `wallet_encryption` error tests (MarcoFalke)
+=2D #14820 Fix `descriptor_tests` not checking ToString output of public=20
+descriptors (ryanofsky)
+=2D #14794 Add AddressSanitizer (ASan) Travis build (practicalswift)
+=2D #14822 bench: Destroy wallet txs instead of leaking their memory=20
+(MarcoFalke)
+=2D #14683 Better `combine_logs.py` behavior (jamesob)
+=2D #14231 travis: Save cache even when build or test fail (ken2812221)
+=2D #14816 Add CScriptNum decode python implementation in functional suite=
+=20
+(instagibbs)
+=2D #14861 Modify `rpc_bind` to conform to #14532 behaviour (dongcarl)
+=2D #14864 Run scripted-diff in subshell (dongcarl)
+=2D #14795 Allow `test_runner` command line to receive parameters for each =
+test=20
+(marcoagner)
+=2D #14788 Possible fix the permission error when the tests open the cookie=
+ file=20
+(ken2812221)
+=2D #14857 `wallet_keypool_topup.py`: Test for all keypool address types=20
+(instagibbs)
+=2D #14886 Refactor importmulti tests (jnewbery)
+=2D #14908 Removed implicit CTransaction constructor calls from tests and=20
+benchmarks (lucash-dev)
+=2D #14903 Handle ImportError explicitly, improve comparisons against None=
+=20
+(daniel-s-ingram)
+=2D #14884 travis: Enforce python 3.4 support through linter (Sjors)
+=2D #14940 Add test for truncated pushdata script (MarcoFalke)
+=2D #14926 consensus: Check that final transactions are valid (MarcoFalke)
+=2D #14937 travis: Fix travis would always be green even if it fail (ken281=
+2221)
+=2D #14953 Make `g_insecure_rand_ctx` `thread_local` (MarcoFalke)
+=2D #14931 mempool: Verify prioritization is dumped correctly (MarcoFalke)
+=2D #14935 Test for expected return values when calling functions returning=
+ a=20
+success code (practicalswift)
+=2D #14969 Fix `cuckoocache_tests` TSAN failure introduced in 14935=20
+(practicalswift)
+=2D #14964 Fix race in `mempool_accept` (MarcoFalke)
+=2D #14829 travis: Enable functional tests in the threadsanitizer (tsan) bu=
+ild=20
+job (practicalswift)
+=2D #14985 Remove `thread_local` from `test_bitcoin` (MarcoFalke)
+=2D #15005 Bump timeout to run tests in travis thread sanitizer (MarcoFalke)
+=2D #15013 Avoid race in `p2p_timeouts` (MarcoFalke)
+=2D #14930 pruning: Check that verifychain can be called when pruned=20
+(MarcoFalke)
+=2D #15022 Upgrade Travis OS to Xenial (gkrizek)
+=2D #14738 Fix running `wallet_listtransactions.py` individually through=20
+`test_runner.py` (kristapsk)
+=2D #15026 Rename `rpc_timewait` to `rpc_timeout` (MarcoFalke)
+=2D #15069 Fix `rpc_net.py` `pong` race condition (Empact)
+=2D #14790 Allow running `rpc_bind.py` --nonloopback test without IPv6=20
+(kristapsk)
+=2D #14457 add invalid tx templates for use in functional tests (jamesob)
+=2D #14855 Correct ineffectual WithOrVersion from `transactions_tests` (Emp=
+act)
+=2D #15099 Use `std::vector` API for construction of test data (domob1812)
+=2D #15102 Run `invalid_txs.InputMissing` test in `feature_block` (MarcoFal=
+ke)
+=2D #15059 Add basic test for BIP34 (MarcoFalke)
+=2D #15108 Tidy up `wallet_importmulti.py` (amitiuttarwar)
+=2D #15164 Ignore shellcheck warning SC2236 (promag)
+=2D #15170 refactor/lint: Add ignored shellcheck suggestions to an array=20
+(koalaman)
+=2D #14958 Remove race between connecting and shutdown on separate connecti=
+ons=20
+(promag)
+=2D #15166 Pin shellcheck version (practicalswift)
+=2D #15196 Update all `subprocess.check_output` functions to be Python 3.4=
+=20
+compatible (gkrizek)
+=2D #15043 Build fuzz targets into seperate executables (MarcoFalke)
+=2D #15276 travis: Compile once on trusty (MarcoFalke)
+=2D #15246 Add tests for invalid message headers (MarcoFalke)
+=2D #15301 When testing with --usecli, unify RPC arg to cli arg conversion =
+and=20
+handle dicts and lists (achow101)
+=2D #15247 Use wallet to retrieve raw transactions (MarcoFalke)
+=2D #15303 travis: Remove unused `functional_tests_config` (MarcoFalke)
+=2D #15330 Fix race in `p2p_invalid_messages` (MarcoFalke)
+=2D #15324 Make bloom tests deterministic (MarcoFalke)
+=2D #15328 travis: Revert "run extended tests once daily" (MarcoFalke)
+=2D #15327 Make test `updatecoins_simulation_test` deterministic=20
+(practicalswift)
+=2D #14519 add utility to easily profile node performance with perf (jameso=
+b)
+=2D #15349 travis: Only exit early if compilation took longer than 30 min=20
+(MarcoFalke)
+=2D #15350 Drop RPC connection if --usecli (promag)
+=2D #15370 test: Remove unused --force option (MarcoFalke)
+=2D #14543 minor `p2p_sendheaders` fix of height in coinbase (instagibbs)
+=2D #13787 Test for Windows encoding issue (ken2812221)
+=2D #15378 Added missing tests for RPC wallet errors (benthecarman)
+=2D #15238 remove some magic mining constants in functional tests (instagib=
+bs)
+=2D #15411 travis: Combine --disable-bip70 into existing job (MarcoFalke)
+=2D #15295 fuzz: Add `test/fuzz/test_runner.py` and run it in travis=20
+(MarcoFalke)
+=2D #15413 Add missing `cs_main` locks required when accessing pcoinsdbview=
+,=20
+pcoinsTip or pblocktree (practicalswift)
+=2D #15399 fuzz: Script validation flags (MarcoFalke)
+=2D #15410 txindex: interrupt threadGroup before calling destructor (MarcoF=
+alke)
+=2D #15397 Remove manual byte editing in `wallet_tx_clone` func test=20
+(instagibbs)
+=2D #15415 functional: allow custom cwd, use tmpdir as default (Sjors)
+=2D #15404 Remove `-txindex` to start nodes (amitiuttarwar)
+=2D #15439 remove `byte.hex()` to keep compatibility (AkioNak)
+=2D #15419 Always refresh cache to be out of ibd (MarcoFalke)
+=2D #15507 Bump timeout on tests that timeout on windows (MarcoFalke)
+=2D #15506 appveyor: fix cache issue and reduce dependencies build time=20
+(ken2812221)
+=2D #15485 add `rpc_misc.py`, mv test getmemoryinfo, add test mallocinfo=20
+(adamjonas)
+=2D #15321 Add `cs_main` lock annotations for mapBlockIndex (MarcoFalke)
+=2D #14128 lint: Make sure we read the command line inputs using UTF-8 deco=
+ding=20
+in python (ken2812221)
+=2D #14115 lint: Make all linters work under the default macos dev environm=
+ent=20
+(build-osx.md) (practicalswift)
+=2D #15219 lint: Enable python linters via an array (Empact)
+=2D #15155 *test: Support -cli tests using external bitcoin-cli (luke-jr)
+=2D #15888 *QA: Add wallet_implicitsegwit to test the ability to transform =
+keys=20
+between address types (luke-jr)
+=2D #15896 *QA: feature_filelock, interface_bitcoin_cli: Use PACKAGE_NAME i=
+n=20
+messages rather than hardcoding Bitcoin Core (luke-jr)
+=2D #15897 *QA/mininode: Send all headers upfront in send_blocks_and_test t=
+o=20
+avoid sending an unconnected one (luke-jr)
+=2D #12911 *test: add test to segwit tests for fee rate when signing raw tx=
+=20
+(kallewoof)
+=2D #12146 *QA: wallet_implicitsegwit: Add tests for -walletimplicitsegwit=
+=3D0=20
+(luke-jr)
+
+### Platform support
+=2D #13866 utils: Use `_wfopen` and `_wfreopen` on windows (ken2812221)
+=2D #13886 utils: Run commands using UTF-8 string on windows (ken2812221)
+=2D #14192 utils: Convert `fs::filesystem_error` messages from local multib=
+yte=20
+to UTF-8 on windows (ken2812221)
+=2D #13877 utils: Make fs::path::string() always return UTF-8 string on win=
+dows=20
+(ken2812221)
+=2D #13883 utils: Convert windows args to UTF-8 string (ken2812221)
+=2D #13878 utils: Add fstream wrapper to allow to pass unicode filename on=
+=20
+windows (ken2812221)
+=2D #14426 utils: Fix broken windows filelock (ken2812221)
+=2D #14686 Fix windows build error if `--disable-bip70` (ken2812221)
+=2D #14922 windows: Set `_WIN32_WINNT` to 0x0601 (Windows 7) (ken2812221)
+=2D #13888 Call unicode API on Windows (ken2812221)
+=2D #15468 Use `fsbridge::ifstream` to fix Windows path issue (ken2812221)
+=2D #13734 Drop `boost::scoped_array` and use `wchar_t` API explicitly on=20
+Windows (ken2812221)
+=2D #13884 Enable bdb unicode support for Windows (ken2812221)
+=2D #15600 *lockedpool: When possible, use madvise to avoid including sensi=
+tive=20
+information in core dumps or forked process memory spaces (luke-jr)
+=2D #15650 *Handle the result of posix_fallocate system call (lucayepa)
+
+### Miscellaneous
+=2D #13935 contrib: Adjust output to current test format (AkioNak)
+=2D #14097 validation: Log FormatStateMessage on ConnectBlock error in=20
+ConnectTip (MarcoFalke)
+=2D #14186 bitcoin-cli: don't translate command line options (HashUnlimited)
+=2D #14057 logging: Only log `using config file path_to_bitcoin.conf` messa=
+ge on=20
+startup if conf file exists (leishman)
+=2D #14164 Update univalue subtree (MarcoFalke)
+=2D #14272 init: Remove deprecated args from hidden args (MarcoFalke)
+=2D #14494 Error if # is used in rpcpassword in conf (MeshCollider)
+=2D #14742 Properly generate salt in rpcauth.py (dongcarl)
+=2D #14708 Warn unrecognised sections in the config file (AkioNak)
+=2D #14756 Improve rpcauth.py by using argparse and getpass modules (promag)
+=2D #14785 scripts: Fix detection of copyright holders (cornelius)
+=2D #14831 scripts: Use `#!/usr/bin/env bash` instead of `#!/bin/bash` (vim=
+88)
+=2D #14869 Scripts: Add trusted key for samuel dobson (laanwj)
+=2D #14809 Tools: improve verify-commits.py script (jlopp)
+=2D #14624 Some simple improvements to the RNG code (sipa)
+=2D #14947 scripts: Remove python 2 import workarounds (practicalswift)
+=2D #15087 Error if rpcpassword contains hash in conf sections (MeshCollide=
+r)
+=2D #14433 Add checksum in gitian build scripts for ossl (TheCharlatan)
+=2D #15165 contrib: Allow use of github api authentication in github-merge=
+=20
+(laanwj)
+=2D #14409 utils and libraries: Make 'blocksdir' always net specific (hebas=
+to)
+=2D #14839 threads: Fix unitialized members in `sched_param` (fanquake)
+=2D #14955 Switch all RNG code to the built-in PRNG (sipa)
+=2D #15258 Scripts and tools: Fix `devtools/copyright_header.py` to always =
+honor=20
+exclusions (Empact)
+=2D #12255 Update bitcoin.service to conform to init.md (dongcarl)
+=2D #15266 memory: Construct globals on first use (MarcoFalke)
+=2D #15347 Fix build after pr 15266 merged (hebasto)
+=2D #15351 Update linearize-hashes.py (OverlordQ)
+=2D #15358 util: Add setuphelpoptions() (MarcoFalke)
+=2D #15216 Scripts and tools: Replace script name with a special parameter=
+=20
+(hebasto)
+=2D #15250 Use RdSeed when available, and reduce RdRand load (sipa)
+=2D #15278 Improve PID file error handling (hebasto)
+=2D #15270 Pull leveldb subtree (MarcoFalke)
+=2D #15456 Enable PID file creation on WIN (riordant)
+=2D #15124 Fail AppInitMain if either disk space check fails (Empact)
+=2D #15117 Fix invalid memory write in case of failing mmap(=E2=80=A6) in=20
+PosixLockedPageAllocator::AllocateLocked (practicalswift)
+=2D #14357 streams: Fix broken `streams_vector_reader` test. Remove unused=
+=20
+`seek(size_t)`
+=2D #11640 Make `LOCK`, `LOCK2`, `TRY_LOCK` work with CWaitableCriticalSect=
+ion=20
+(ryanofsky)
+=2D #14074 Use `std::unordered_set` instead of `set` in blockfilter interfa=
+ce=20
+(jimpo)
+=2D #15275 Add gitian PGP key for hebasto (hebasto)
+=2D #8501 *Stats: Fix typing issues in memory management logic (luke-jr)
+=2D #8501 *Stats: In weird memory management cases, do the best that makes =
+sense=20
+(luke-jr)
+=2D #13339 *wallet: Escape wallet name in -walletnotify script (promag)
+=2D #15367 *feature: Added ability for users to add a startup command=20
+(benthecarman)
+=2D #15566 *cli: add chain and return network name as per BIP70. (fanquake)
+
+### Documentation
+=2D #14120 Notes about control port and read access to cookie (JBaczuk)
+=2D #14135 correct GetDifficulty doc after #13288 (fanquake)
+=2D #14013 Add new regtest ports in man following #10825 ports reattributio=
+ns=20
+(ariard)
+=2D #14149 Remove misleading checkpoints comment in CMainParams (MarcoFalke)
+=2D #14153 Add disable-wallet section to OSX build instructions, update lin=
+e in=20
+Unix instructions (bitstein)
+=2D #13662 Explain when reindex-chainstate can be used instead of reindex=20
+(Sjors)
+=2D #14207 `-help-debug` implies `-help` (laanwj)
+=2D #14213 Fix reference to lint-locale-dependence.sh (hebasto)
+=2D #14206 Document `-checklevel` levels (laanwj)
+=2D #14217 Add GitHub PR template (MarcoFalke)
+=2D #14331 doxygen: Fix member comments (MarcoFalke)
+=2D #14264 Split depends installation instructions per arch (MarcoFalke)
+=2D #14393 Add missing apt-get install (poiuty)
+=2D #14428 Fix macOS files description in qt/README.md (hebasto)
+=2D #14390 release process: RPC documentation (karel-3d)
+=2D #14497 Add doc/bitcoin-conf.md (hebasto)
+=2D #14526 Document lint tests (fanquake)
+=2D #14511 Remove explicit storage requirement from README.md (merland)
+=2D #14600 Clarify commit message guidelines (merland)
+=2D #14617 FreeBSD: Document Python 3 requirement for 'gmake check' (murray=
+n)
+=2D #14592 Add external interface consistency guarantees (MarcoFalke)
+=2D #14625 Make clear function argument case in dev notes (dongcarl)
+=2D #14515 Update OpenBSD build guide for 6.4 (fanquake)
+=2D #14436 Add comment explaining recentRejects-DoS behavior (jamesob)
+=2D #14684 conf: Remove deprecated options from docs, Other cleanup (MarcoF=
+alke)
+=2D #14731 Improve scripted-diff developer docs (dongcarl)
+=2D #14778 A few minor formatting fixes and clarifications to descriptors.m=
+d=20
+(jnewbery)
+=2D #14448 Clarify rpcwallet flag url change (JBaczuk)
+=2D #14808 Clarify RPC rawtransaction documentation (jlopp)
+=2D #14804 Less confusing documentation for `torpassword` (fanquake)
+=2D #14848 Fix broken Gmane URL in security-check.py (cyounkins-bot)
+=2D #14882 developer-notes.md: Point out that UniValue deviates from upstre=
+am=20
+(Sjors)
+=2D #14909 Update minimum required Qt (fanquake)
+=2D #14914 Add nice table to files.md (emilengler)
+=2D #14741 Indicate `-rpcauth` option password hashing alg (dongcarl)
+=2D #14950 Add NSIS setup/install steps to windows docs (fanquake)
+=2D #13930 Better explain GetAncestor check for `m_failed_blocks` in=20
+AcceptBlockHeader (Sjors)
+=2D #14973 Improve Windows native build instructions (murrayn)
+=2D #15073 Botbot.me (IRC logs) not available anymore (anduck)
+=2D #15038 Get more info about GUI-related issue on Linux (hebasto)
+=2D #14832 Add more Doxygen information to Developer Notes (ch4ot1c)
+=2D #15128 Fix download link in doc/README.md (merland)
+=2D #15127 Clarifying testing instructions (benthecarman)
+=2D #15132 Add FreeBSD build notes link to doc/README.md (fanquake)
+=2D #15173 Explain what .python-version does (Sjors)
+=2D #15223 Add information about security to the JSON-RPC doc (harding)
+=2D #15249 Update python docs to reflect that wildcard imports are disallow=
+ed=20
+(Empact)
+=2D #15176 Get rid of badly named `doc/README_osx.md` (merland)
+=2D #15272 Correct logging return type and RPC example (fanquake)
+=2D #15244 Gdb attaching to process during tests has non-sudo solution=20
+(instagibbs)
+=2D #15332 Small updates to `getrawtransaction` description (amitiuttarwar)
+=2D #15354 Add missing `bitcoin-wallet` tool manpages (MarcoFalke)
+=2D #15343 netaddress: Make IPv4 loopback comment more descriptive (dongcar=
+l)
+=2D #15353 Minor textual improvements in `translation_strings_policy.md`=20
+(merland)
+=2D #15426 importmulti: add missing description of keypool option (harding)
+=2D #15425 Add missing newline to listunspent help for witnessScript (hardi=
+ng)
+=2D #15348 Add separate productivity notes document (dongcarl)
+=2D #15416 Update FreeBSD build guide for 12.0 (fanquake)
+=2D #15222 Add info about factors that affect dependency list (merland)
+=2D #13676 Explain that mempool memory is added to `-dbcache` (Sjors)
+=2D #15273 Slight tweak to the verify-commits script directions (droark)
+=2D #15477 Remove misleading hint in getrawtransaction (MarcoFalke)
+=2D #15489 Update release process for snap package (MarcoFalke)
+=2D #15524 doc: Remove berkeleydb PPA from linux build instructions (MarcoF=
+alke)
+=2D #15559 Correct `analyzepsbt` rpc doc (fanquake)
+=2D #15194 Add comment describing `fDisconnect` behavior (dongcarl)
+=2D #15754 getrpcinfo docs (benthecarman)
+=2D #15763 Update bips.md for 0.18.0 (sipa)
+=2D #15757 List new RPCs in psbt.md and descriptors.md (sipa)
+=2D #15765 correct bitcoinconsensus_version in shared-libraries.md (fanquak=
+e)
+=2D #15792 describe onlynet option in doc/tor.md (jonatack)
+=2D #15802 mention creating application support bitcoin folder on OSX (Jimm=
+yMow)
+=2D #15799 Clarify RPC versioning (MarcoFalke)
+
+Credits
+=3D=3D=3D=3D=3D=3D=3D
+
+Thanks to everyone who directly contributed to this release:
+
+=2D 1Il1
+=2D 251
+=2D Aaron Clauson
+=2D Adam Jonas
+=2D Akio Nakamura
+=2D Alexander Leishman
+=2D Alexey Poghilenkov
+=2D Amir Abrams
+=2D Amiti Uttarwar
+=2D Andrew Chow
+=2D andrewtoth
+=2D Anthony Towns
+=2D Antoine Le Calvez
+=2D Antoine Riard
+=2D Antti Majakivi
+=2D araspitzu
+=2D Arvid Norberg
+=2D Ben Carman
+=2D Ben Woosley
+=2D benthecarman
+=2D bitcoinhodler
+=2D Carl Dong
+=2D Chakib Benziane
+=2D Chris Moore
+=2D Chris Stewart
+=2D Chun Kuan Lee
+=2D Cornelius Schumacher
+=2D Cory Fields
+=2D Craig Younkins
+=2D Cristian Mircea Messel
+=2D Damian Mee
+=2D Daniel Ingram
+=2D Daniel Kraft
+=2D David A. Harding
+=2D DesWurstes
+=2D Dimitri Deijs
+=2D Dimitris Apostolou
+=2D Douglas Roark
+=2D DrahtBot
+=2D Emanuele Cisbani
+=2D Emil Engler
+=2D Eric Scrivner
+=2D fridokus
+=2D Gal Buki
+=2D Gleb Naumenko
+=2D Glenn Willen
+=2D Graham Krizek
+=2D Gregory Maxwell
+=2D Gregory Sanders
+=2D gustavonalle
+=2D Harry Moreno
+=2D Hennadii Stepanov
+=2D Isidoro Ghezzi
+=2D Jack Mallers
+=2D James Hilliard
+=2D James O'Beirne
+=2D Jameson Lopp
+=2D Jeremy Rubin
+=2D Jesse Cohen
+=2D Jim Posen
+=2D John Newbery
+=2D Jon Layton
+=2D Jonas Schnelli
+=2D Jo=C3=A3o Barbosa
+=2D Jordan Baczuk
+=2D Jorge Tim=C3=B3n
+=2D Julian Fleischer
+=2D Justin Turner Arthur
+=2D Karel B=C3=ADlek
+=2D Karl-Johan Alm
+=2D Kaz Wesley
+=2D ken2812221
+=2D Kostiantyn Stepaniuk
+=2D Kristaps Kaupe
+=2D Lawrence Nahum
+=2D Lenny Maiorani
+=2D liuyujun
+=2D Luca Venturini
+=2D lucash-dev
+=2D luciana
+=2D Luke Dashjr
+=2D marcaiaf
+=2D marcoagner
+=2D MarcoFalke
+=2D Martin Erlandsson
+=2D Marty Jones
+=2D Mason Simon
+=2D Michael Ford
+=2D Michael Goldstein
+=2D Michael Polzer
+=2D Mitchell Cash
+=2D mruddy
+=2D Murray Nesbitt
+=2D OverlordQ
+=2D Patrick Strateman
+=2D Pierre Rochard
+=2D Pieter Wuille
+=2D poiuty
+=2D practicalswift
+=2D priscoan
+=2D qubenix
+=2D riordant
+=2D Russell Yanofsky
+=2D Samuel Dobson
+=2D sanket1729
+=2D Sjors Provoost
+=2D Stephan Oeste
+=2D Steven Roose
+=2D Suhas Daftuar
+=2D TheCharlatan
+=2D Tim Ruffing
+=2D Tobias Kaderle
+=2D Vidar Holen
+=2D vim88
+=2D Walter
+=2D Wladimir J. van der Laan
+=2D Zain Iqbal Allarakhia
+
+As well as everyone that helped translating on [Transifex]
+(https://www.transifex.com/projects/p/bitcoin/).
+
+
+--nextPart5828916.evidevtqpS
+Content-Type: application/pgp-signature; name=signature.asc
+Content-Description: This is a digitally signed message part.
+
+-----BEGIN PGP SIGNATURE-----
+
+iQQzBAABCAAdFiEE5GOpP18xF+7ebHMWvQKUJCH0iJ8FAlzM/d0ACgkQvQKUJCH0
+iJ8Wfx//SrFWuhDTRy5eJ5/VD0keKJxxARiMBuLYP3dWGJ8oPbwxYMkOiXQtGFpy
+L68xk9kYd/7dNrjYMysRBjX3jeeBYaBkjoOU6r9JlGIPY8qjw2zDn069xSHc6A10
+IV69yrCutciqs+ltXslr1azC1czFr/oIUpvgImknpgTHNFbgawm9QGH8UyMs6kA3
+j/EXzyYBYhgGugYrnLMlA8qGsdikTYYz97SncOFg0FnrJawPfcURLuJCNhoUa2qw
+CcXCGFz/dqB1g51e0TuzGRjWJGyhqYbAAHbXItcKXTT5GEacHO9AXmNNcGtrrz2S
+6/8LUQM1zzsaYLx0NmQPE5vqTtjWJxkl/6rJz0HlJ+bEm/7vLQJaPU1QtCr5eoBb
+wSstcqAszvwgVcSdPCIqbFVjiS+i/psAMEuxR+qzxHfmyyCgXHMO4ZV8vjLDrkq8
+NVg03D1OEJCaYTucYSgF2x8/Qg28w51ykMJjhyY/Wky4sVXjJuVKJlB4mocXCw0u
+bTfhGuCt7RNv8ymqR96bdIFnQfyQHinFm6lY0L+qOLkFaD0yofGO8OS1i2Rfwic1
+VcVmgwE8AaMpMCPPollfwWyV26Z+gpTG7xbjVe3tvE47OTTvzVObF8hchJy6nXAP
+hIlPhdPt/rADjxjwDHwGfhT0mbid+6lkE9F5+CM7M/GBTa/Fil/g5h+nOw48Ksjw
+lewpuLmqE3zMD74pCDdxW/fDZM42Cy6IK6sBqDvEGLSFM9y3DQ7l/Q1MxMyr3Fw+
+qUUufMREt0wuKEIWlxsP227UfSzZ4hlUTPGlVWTPFM86A4r4WOyKy8ic+tzvd6hV
+FgUn/EtYSOnMuWb7QOyl1xx/aY7LL33ENnZRNLT7MurvRCAaa8SD/w3WjqoCnygx
+0qCSqr2ltdj5cn3npbI3trM57+yhum8LFE/3V8GMyQktfAQIlm9u3t4b2sEjYj8P
+dge+WASiob0r7tCM8NhCdy9SJAF5NQV1IL92IcS8KE8993jA/oL9QOPiV0JI4lBP
+JTiKKju1BPR6GW3bO2NM7sXj+EeP7sgyVAjfh6Xijf5AZQ7RWAA2ytgKNCaExGR7
+JjzGBWOJBF2TEKvxJx0+KrJt+5FwxJqy2DmX0RfCk80iFS405Nnks7ioADbbd6zZ
++LK7rYO8RsAIEygf+h0vBDDbA43lgddIm6tEHFOQyMISSyy1fX6GE9LaYsQsFUe/
+7DUB37pK2R7ahdt58sDe64LUNFDCNWKz8OEsk1ekcrT3cTpNZB4u7zFOumcPyRuh
+E2plTViikfUGADjIYU2r7oLT+N7/bbW+4vjU/MivpHLp0uXEfGEQiyVAyAC7CWaJ
+YSURtqd6mA+/qQ+3YPkg0b5gu2kY9A==
+=kH2E
+-----END PGP SIGNATURE-----
+
+--nextPart5828916.evidevtqpS--
+