Path to this page:
Subject: CVS commit: pkgsrc/finance/bitcoin
From: Adam Ciarcinski
Date: 2019-12-03 17:30:35
Message id: 20191203163035.A9523FA97@cvs.NetBSD.org
Log Message:
bitcoin: updated to 0.19.0.1
0.19.0.1:
Notable changes
New user documentation
Reduce memory suggests configuration tweaks for running Bitcoin Core on systems \
with limited memory.
New RPCs
getbalances returns an object with all balances (mine, untrusted_pending and \
immature). Please refer to the RPC help of getbalances for details. The new RPC \
is intended to replace getbalance, getunconfirmedbalance, and the balance fields \
in getwalletinfo. These old calls and fields may be removed in a future version.
setwalletflag sets and unsets wallet flags that enable or disable features \
specific to that existing wallet, such as the new avoid_reuse feature documented \
elsewhere in these release notes.
getblockfilter gets the BIP158 filter for the specified block. This RPC is only \
enabled if block filters have been created using the -blockfilterindex \
configuration option.
New settings
-blockfilterindex enables the creation of BIP158 block filters for the entire \
blockchain. Filters will be created in the background and currently use about 4 \
GiB of space. Note: this version of Bitcoin Core does not serve block filters \
over the P2P network, although the local user may obtain block filters using the \
getblockfilter RPC.
Updated settings
whitebind and whitelist now accept a list of permissions to provide peers \
connecting using the indicated interfaces or IP addresses. If no permissions are \
specified with an address or CIDR network, the implicit default permissions are \
the same as previous releases. See the bitcoind -help output for these two \
options for details about the available permissions.
Users setting custom dbcache values can increase their setting slightly without \
using any more real memory. Recent changes reduced the memory use by about 9% \
and made chainstate accounting more accurate (it was underestimating the use of \
memory before). For example, if you set a value of "450" before, you \
may now set a value of "500" to use about the same real amount of \
memory.
Updated RPCs
Note: some low-level RPC changes mainly useful for testing are described in the \
Low-level Changes section below.
sendmany no longer has a minconf argument. This argument was not well-specified \
and would lead to RPC errors even when the wallet's coin selection succeeded. \
Users who want to influence coin selection can use the existing \
-spendzeroconfchange, -limitancestorcount, -limitdescendantcount and \
-walletrejectlongchains configuration arguments.
getbalance and sendtoaddress, plus the new RPCs getbalances and createwallet, \
now accept an "avoid_reuse" parameter that controls whether already \
used addresses should be included in the operation. Additionally, sendtoaddress \
will avoid partial spends when avoid_reuse is enabled even if this feature is \
not already enabled via the -avoidpartialspends command line flag because not \
doing so would risk using up the "wrong" UTXO for an address reuse \
case.
RPCs which have an include_watchonly argument or includeWatching option now \
default to true for watch-only wallets. Affected RPCs are: getbalance, \
listreceivedbyaddress, listreceivedbylabel, listtransactions, listsinceblock, \
gettransaction, walletcreatefundedpsbt, and fundrawtransaction.
listunspent now returns a "reused" bool for each output if the wallet \
flag "avoid_reuse" is enabled.
getblockstats now uses BlockUndo data instead of the transaction index, making \
it much faster, no longer dependent on the -txindex configuration option, and \
functional for all non-pruned blocks.
utxoupdatepsbt now accepts a descriptors parameter that will fill out input and \
output scripts and keys when known. 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.
sendrawtransaction and testmempoolaccept no longer accept a allowhighfees \
parameter to fail mempool acceptance if the transaction fee exceeds the value of \
the configuration option -maxtxfee. Now there is a hardcoded default maximum \
feerate that can be changed when calling either RPC using a maxfeerate \
parameter.
getmempoolancestors, getmempooldescendants, getmempoolentry, and getrawmempool \
no longer return a size field unless the configuration option \
-deprecatedrpc=size is used. Instead a new vsize field is returned with the \
transaction's virtual size (consistent with other RPCs such as \
getrawtransaction).
getwalletinfo now includes a scanning field that is either false (no scanning) \
or an object with information about the duration and progress of the wallet's \
scanning historical blocks for transactions affecting its balances.
gettransaction now accepts a third (boolean) argument verbose. If set to true, a \
new decoded field will be added to the response containing the decoded \
transaction. This field is equivalent to RPC decoderawtransaction, or RPC \
getrawtransaction when verbose is passed.
createwallet accepts a new passphrase parameter. If set, this will create the \
new wallet encrypted with the given passphrase. If unset (the default) or set to \
an empty string, no encryption will be used.
getchaintxstats RPC now returns the additional key of window_final_block_height.
getmempoolentry now provides a weight field containing the transaction weight as \
defined in BIP141.
The getnetworkinfo and getpeerinfo commands now contain a new field with decoded \
network service flags.
getdescriptorinfo now returns an additional checksum field containing the \
checksum for the unmodified descriptor provided by the user (that is, before the \
descriptor is normalized for the descriptor field).
joinpsbts now shuffles the order of the inputs and outputs of the resulting \
joined PSBT. Previously, inputs and outputs were added in the order PSBTs were \
provided. This made it easy to correlate inputs to outputs, representing a \
privacy leak.
walletcreatefundedpsbt now signals BIP125 Replace-by-Fee if the -walletrbf \
configuration option is set to true.
GUI changes
The GUI wallet now provides bech32 addresses by default. The user may change the \
address type during invoice generation using a GUI toggle, or the default \
address type may be changed with the -addresstype configuration option.
In 0.18.0, a ./configure flag was introduced to allow disabling BIP70 support in \
the GUI (support was enabled by default). In 0.19.0, this flag is now disabled \
by default. If you want to compile Bitcoin Core with BIP70 support in the GUI, \
you can pass --enable-bip70 to ./configure.
Deprecated or removed configuration options
-mempoolreplacement is removed, although default node behavior remains the same. \
This option previously allowed the user to prevent the node from accepting or \
relaying BIP125 transaction replacements. This is different from the remaining \
configuration option -walletrbf.
Deprecated or removed RPCs
bumpfee no longer accepts a totalFee option unless the configuration parameter \
deprecatedrpc=totalFee is specified. This parameter will be fully removed in a \
subsequent release.
bumpfee has a new fee_rate option as a replacement for the deprecated totalFee.
generate is now removed after being deprecated in Bitcoin Core 0.18. Use the \
generatetoaddress RPC instead.
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.
To eliminate well-known denial-of-service vectors in Bitcoin Core, especially \
for nodes with spinning disks, the default value for the -peerbloomfilters \
configuration option has been changed to false. This prevents Bitcoin Core from \
sending the BIP111 NODE_BLOOM service flag, accepting BIP37 bloom filters, or \
serving merkle blocks or transactions matching a bloom filter. Users who still \
want to provide bloom filter support may either set the configuration option to \
true to re-enable both BIP111 and BIP37 support or enable just BIP37 support for \
specific peers using the updated -whitelist and -whitebind configuration options \
described elsewhere in these release notes. For the near future, lightweight \
clients using public BIP111/BIP37 nodes should still be able to connect to older \
versions of Bitcoin Core and nodes that have manually enabled BIP37 support, but \
developers of such software should consider migrating to either using specific \
BIP37 nodes or an alternative transactio
n filtering system.
By default, Bitcoin Core will now make two additional outbound connections that \
are exclusively used for block-relay. No transactions or addr messages will be \
processed on these connections. These connections are designed to add little \
additional memory or bandwidth resource requirements but should make some \
partitioning attacks more difficult to carry out.
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).
Files: