aboutsummaryrefslogtreecommitdiff
path: root/doc/release-notes.md
diff options
context:
space:
mode:
authorDavid A. Harding <dave@dtrt.org>2019-08-19 07:14:32 -1000
committerDavid A. Harding <dave@dtrt.org>2019-08-22 13:21:41 -1000
commite7415a5a95f53abf1f8ffa2085217b249d7caf61 (patch)
treeb05e40d8275aacebc5738f77eb6a6c532c7f2a6e /doc/release-notes.md
parent52b9797119d5ee20b255efc68931ac7e158e325d (diff)
downloadbitcoin-e7415a5a95f53abf1f8ffa2085217b249d7caf61.tar.xz
Doc: move detached release notes into release-notes.md
Diffstat (limited to 'doc/release-notes.md')
-rw-r--r--doc/release-notes.md141
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
=======