diff options
Diffstat (limited to 'doc/release-notes.md')
-rw-r--r-- | doc/release-notes.md | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/doc/release-notes.md b/doc/release-notes.md index e0673ae7ee..081e2e0a9b 100644 --- a/doc/release-notes.md +++ b/doc/release-notes.md @@ -73,6 +73,8 @@ New RPCs `getunconfirmedbalance` and the balance fields in `getwalletinfo`, as well as `getbalance`. The old calls may be removed in a future version. +- A new `setwalletflag` RPC sets/unsets flags for an existing wallet. + Updated RPCs ------------ @@ -88,6 +90,67 @@ Low-level Changes section below. `-limitancestorcount`, `-limitdescendantcount` and `-walletrejectlongchains` command line arguments. +- Several RPCs have been updated to include an "avoid_reuse" flag, used + to control whether already used addresses should be left out or + included in the operation. These include: + + - createwallet + - getbalance + - getbalances + - sendtoaddress + + In addition, `sendtoaddress` has been changed to avoid partial spends + when `avoid_reuse` is enabled (if not already enabled via the + `-avoidpartialspends` command line flag), as it would otherwise risk + using up the "wrong" UTXO for an address reuse case. + + The listunspent RPC has also been updated to now include a "reused" + bool, for nodes with "avoid_reuse" enabled. + +- The `getblockstats` RPC is faster for fee calculation by using + BlockUndo data. Also , `-txindex` is no longer required and + `getblockstats` works for all non-pruned blocks. + +- `createwallet` can now create encrypted wallets if a non-empty + passphrase is specified. + +- The `utxoupdatepsbt` RPC method has been updated to take a + `descriptors` argument. When provided, input and output scripts and + keys will be filled in when known, and P2SH-witness inputs will be + filled in from the UTXO set when a descriptor is provided that shows + they're spending segwit outputs. + + See the RPC help text for full details. + +- The -maxtxfee setting no longer has any effect on non-wallet RPCs. + + The `sendrawtransaction` and `testmempoolaccept` RPC methods previously + accepted an `allowhighfees` parameter to fail the mempool acceptance in case + the transaction's fee would exceed the value of the command line argument + `-maxtxfee`. To uncouple the RPCs from the global option, they now have a + hardcoded default for the maximum transaction fee, that can be changed for + both RPCs on a per-call basis with the `maxfeerate` parameter. The + `allowhighfees` boolean option has been removed and replaced by the + `maxfeerate` numeric option. + +- In getmempoolancestors, getmempooldescendants, getmempoolentry and + getrawmempool RPCs, to be consistent with the returned value and other + RPCs such as getrawtransaction, vsize has been added and size is now + deprecated. size will only be returned if bitcoind is started with + `-deprecatedrpc=size`. + +- The RPC `getwalletinfo` response now includes the `scanning` key with + an object if there is a scanning in progress or `false` otherwise. + Currently the object has the scanning duration and progress. + +- `createwallet` now returns a warning if an empty string is used as an + encryption password, and does not encrypt the wallet, instead of + raising an error. This makes it easier to disable encryption but also + specify other options when using the `bitcoin-cli` tool. + +- `getmempoolentry` now provides a `weight` field containing the + transaction weight as defined in BIP 141. + Deprecated or removed RPCs -------------------------- @@ -95,12 +158,51 @@ Deprecated or removed RPCs removed in 0.20. To continue using this option start with `-deprecatedrpc=totalFee`. See the `bumpfee` RPC help text for more details. +P2P changes +----------- + +- BIP 61 reject messages were deprecated in v0.18. They are now disabled + by default, but can be enabled by setting the `-enablebip61` command + line option. BIP 61 reject messages will be removed entirely in a + future version of Bitcoin Core. + +- The default value for the -peerbloomfilters configuration option (and, + thus, NODE_BLOOM support) has been changed to false. This resolves + well-known DoS vectors in Bitcoin Core, especially for nodes with + spinning disks. It is not anticipated that this will result in a + significant lack of availability of NODE_BLOOM-enabled nodes in the + coming years, however, clients which rely on the availability of + NODE_BLOOM-supporting nodes on the P2P network should consider the + process of migrating to a more modern (and less trustful and + privacy-violating) alternative over the coming years. + +Miscellaneous CLI Changes +------------------------- +- The `testnet` field in `bitcoin-cli -getinfo` has been renamed to + `chain` and now returns the current network name as defined in BIP70 + (main, test, regtest). + Low-level changes ================= RPC --- +- Soft fork reporting in the `getblockchaininfo` return object has been + updated. For full details, see the RPC help text. In summary: + + - The `bip9_softforks` sub-object is no longer returned + - The `softforks` sub-object now returns an object keyed by soft fork name, + rather than an array + - Each softfork object in the `softforks` object contains a `type` + value which is either `buried` (for soft fork deployments where the + activation height is hard-coded into the client implementation), or + `bip9` (for soft fork deployments where activation is controlled by + BIP 9 signaling). + +- `getblocktemplate` no longer returns a `rules` array containing `CSV` + and `segwit` (the BIP 9 deployments that are currently in active + state). Tests ----- @@ -120,6 +222,10 @@ Configuration the selected network. This change takes only effect if the selected network is not mainnet. +- On platforms supporting `thread_local`, log lines can be prefixed with + the name of the thread that caused the log. To enable this behavior, + use `-logthreadnames=1`. + Network ------- @@ -141,6 +247,41 @@ Wallet the calls to any of the import RPCs would fail when the first block is pruned. +- When creating a transaction with a fee above `-maxtxfee` (default 0.1 + BTC), the RPC commands `walletcreatefundedpsbt` and + `fundrawtransaction` will now fail instead of rounding down the fee. + Beware that the `feeRate` argument is specified in BTC per kilobyte, + not satoshi per byte. + +- A new wallet flag `avoid_reuse` has been added (default off). When + enabled, a wallet will distinguish between used and unused addresses, + and default to not use the former in coin selection. + + Rescanning the blockchain is required, to correctly mark previously + used destinations. + + Together with "avoid partial spends" (present as of Bitcoin v0.17), + this addresses a serious privacy issue where a malicious user can + track spends by peppering a previously paid to address with near-dust + outputs, which would then be inadvertently included in future + payments. + +Build system changes +-------------------- + +- Python >=3.5 is now required by all aspects of the project. This + includes the build systems, test framework and linters. The previously + supported minimum (3.4), was E OL in March 2019. See #14954 for more + details. + +- The minimum supported miniUPnPc API version is set to 10. This keeps + compatibility with Ubuntu 16.04 LTS and Debian 8 `libminiupnpc-dev` + packages. Please note, on Debian this package is still vulnerable to + [CVE-2017-8798](https://security-tracker.debian.org/tracker/CVE-2017-8798) + (in jessie only) and + [CVE-2017-1000494](https://security-tracker.debian.org/tracker/CVE-2017-1000494) + (both in jessie and in stretch). + Credits ======= |