./finance/bitcoin, P2P electronic cash system

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 0.21.0nb1, Package name: bitcoin-0.21.0nb1, Maintainer: khorben

Bitcoin is a decentralized P2P electronic cash system without a central
server or trusted parties. Users hold the crypto keys to their own money
and transact directly with each other, with the help of the network to
check for double-spending.

Required to run:
[sysutils/desktop-file-utils] [databases/db4] [security/openssl] [devel/libevent] [devel/boost-libs] [net/zeromq]

Required to build:
[devel/boost-headers] [pkgtools/cwrappers]

Master sites:

SHA1: 7b4238971148b39d45c988238f92b9f45478087b
RMD160: 8f114015d5eab2f24cced9399d44c2b245e3ace1
Filesize: 7354.878 KB

Version history: (Expand)

CVS history: (Expand)

   2021-02-07 07:30:42 by Ryo ONODERA | Files touched by this commit (357)
Log message:
*: Recursive revbump from audio/pulseaudio-14.2.nb1
   2021-01-19 11:17:00 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
bitcoin: updated to 0.21.0


Notable changes

P2P and network changes

The mempool now tracks whether transactions submitted via the wallet or RPCs \ 
have been successfully broadcast. Every 10-15 minutes, the node will try to \ 
announce unbroadcast transactions until a peer requests it via a getdata message \ 
or the transaction is removed from the mempool for other reasons. The node will \ 
not track the broadcast status of transactions submitted to the node using P2P \ 
relay. This version reduces the initial broadcast guarantees for wallet \ 
transactions submitted via P2P to a node running the wallet.

The size of the set of transactions that peers have announced and we consider \ 
for requests has been reduced from 100000 to 5000 (per peer), and further \ 
announcements will be ignored when that limit is reached. If you need to dump \ 
(very) large batches of transactions, exceptions can be made for trusted peers \ 
using the "relay" network permission. For localhost for example it can \ 
be enabled using the command line option -whitelist=relay@

This release adds support for Tor version 3 hidden services, and rumoring them \ 
over the network to other peers using BIP155. Version 2 hidden services are \ 
still fully supported by Bitcoin Core, but the Tor network will start \ 
deprecating them in the coming months.

The Tor onion service that is automatically created by setting the -listenonion \ 
configuration parameter will now be created as a Tor v3 service instead of Tor \ 
v2. The private key that was used for Tor v2 (if any) will be left untouched in \ 
the onion_private_key file in the data directory (see -datadir) and can be \ 
removed if not needed. Bitcoin Core will no longer attempt to read it. The \ 
private key for the Tor v3 service will be saved in a file named \ 
onion_v3_private_key. To use the deprecated Tor v2 service (not recommended), \ 
the onion_private_key can be copied over onion_v3_private_key, e.g. cp -f \ 
onion_private_key onion_v3_private_key.

The client writes a file (anchors.dat) at shutdown with the network addresses of \ 
the node’s two outbound block-relay-only peers (so called \ 
"anchors"). The next time the node starts, it reads this file and \ 
attempts to reconnect to those same two peers. This prevents an attacker from \ 
using node restarts to trigger a complete change in peers, which would be \ 
something they could use as part of an eclipse attack.

This release adds support for serving BIP157 compact filters to peers on the \ 
network when enabled using -blockfilterindex=1 -peerblockfilters=1.

This release adds support for signets (BIP325) in addition to the existing \ 
mainnet, testnet, and regtest networks. Signets are centrally-controlled test \ 
networks, allowing them to be more predictable test environments than the older \ 
testnet. One public signet is maintained, and selectable using -signet. It is \ 
also possible to create personal signets.

This release implements BIP339 wtxid relay. When negotiated, transactions are \ 
announced using their wtxid instead of their txid.

This release implements the proposed Taproot consensus rules (BIP341 and \ 
BIP342), without activation on mainnet. Experimentation with Taproot can be done \ 
on signet, where its rules are already active.

Updated RPCs

The getpeerinfo RPC has a new network field that provides the type of network \ 
("ipv4", "ipv6", or "onion") that the peer \ 
connected through.

The getpeerinfo RPC now has additional last_block and last_transaction fields \ 
that return the UNIX epoch time of the last block and the last valid transaction \ 
received from each peer.

getnetworkinfo now returns two new fields, connections_in and connections_out, \ 
that provide the number of inbound and outbound peer connections. These new \ 
fields are in addition to the existing connections field, which returns the \ 
total number of peer connections.

Exposed transaction version numbers are now treated as unsigned 32-bit integers \ 
instead of signed 32-bit integers. This matches their treatment in consensus \ 
logic. Versions greater than 2 continue to be non-standard (matching previous \ 
behavior of smaller than 1 or greater than 2 being non-standard). Note that this \ 
includes the joinpsbt command, which combines partially-signed transactions by \ 
selecting the highest version number.

getmempoolinfo now returns an additional unbroadcastcount field. The mempool \ 
tracks locally submitted transactions until their initial broadcast is \ 
acknowledged by a peer. This field returns the count of transactions waiting for \ 

Mempool RPCs such as getmempoolentry and getrawmempool with verbose=true now \ 
return an additional unbroadcast field. This indicates whether initial broadcast \ 
of the transaction has been acknowledged by a peer. getmempoolancestors and \ 
getmempooldescendants are also updated.

The getpeerinfo RPC no longer returns the banscore field unless the \ 
configuration option -deprecatedrpc=banscore is used. The banscore field will be \ 
fully removed in the next major release.

The testmempoolaccept RPC returns vsize and a fees object with the base fee if \ 
the transaction would pass validation.

The getpeerinfo RPC now returns a connection_type field. This indicates the type \ 
of connection established with the peer. It will return one of six options. For \ 
more information, see the getpeerinfo help documentation.

The getpeerinfo RPC no longer returns the addnode field by default. This field \ 
will be fully removed in the next major release. It can be accessed with the \ 
configuration option -deprecatedrpc=getpeerinfo_addnode. However, it is \ 
recommended to instead use the connection_type field (it will return manual when \ 
addnode is true).

The getpeerinfo RPC no longer returns the whitelisted field by default. This \ 
field will be fully removed in the next major release. It can be accessed with \ 
the configuration option -deprecatedrpc=getpeerinfo_whitelisted. However, it is \ 
recommended to instead use the permissions field to understand if specific \ 
privileges have been granted to the peer.

The walletcreatefundedpsbt RPC call will now fail with Insufficient funds when \ 
inputs are manually selected but are not enough to cover the outputs and fee. \ 
Additional inputs can automatically be added through the new add_inputs option.

The fundrawtransaction RPC now supports add_inputs option that when false \ 
prevents adding more inputs if necessary and consequently the RPC fails.

Changes to Wallet or GUI related RPCs can be found in the GUI or Wallet section \ 

New RPCs

The getindexinfo RPC returns the actively running indices of the node, including \ 
their current sync status and height. It also accepts an index_name to specify \ 
returning the status of that index only.
Build System

Updated settings

The same ZeroMQ notification (e.g. -zmqpubhashtx=address) can now be specified \ 
multiple times to publish the same notification to different ZeroMQ sockets.

The -banscore configuration option, which modified the default threshold for \ 
disconnecting and discouraging misbehaving peers, has been removed as part of \ 
changes in 0.20.1 and in this release to the handling of misbehaving peers. \ 
Refer to "Changes regarding misbehaving peers" in the 0.20.1 release \ 
notes for details.

The -debug=db logging category, which was deprecated in 0.20 and replaced by \ 
-debug=walletdb to distinguish it from coindb, has been removed.

A download permission has been extracted from the noban permission. For \ 
compatibility, noban implies the download permission, but this may change in \ 
future releases. Refer to the help of the affected settings -whitebind and \ 
-whitelist for more details.

Netmasks that contain 1-bits after 0-bits (the 1-bits are not contiguous on the \ 
left side, e.g. are no longer accepted. They are invalid \ 
according to RFC 4632. Netmasks are used in the -rpcallowip and -whitelist \ 
configuration options and in the setban RPC.

The -blocksonly setting now completely disables fee estimation.

Changes to Wallet or GUI related settings can be found in the GUI or Wallet \ 
section below.

Tools and Utilities

A new bitcoin-cli -netinfo command provides a network peer connections dashboard \ 
that displays data from the getpeerinfo and getnetworkinfo RPCs in a \ 
human-readable format. An optional integer argument from 0 to 4 may be passed to \ 
see increasing levels of detail.

A new bitcoin-cli -generate command, equivalent to RPC generatenewaddress \ 
followed by generatetoaddress, can generate blocks for command line testing \ 
purposes. This is a client-side version of the former generate RPC. See the help \ 
for details.

The bitcoin-cli -getinfo command now displays the wallet name and balance for \ 
each of the loaded wallets when more than one is loaded (e.g. in multiwallet \ 
mode) and a wallet is not specified with -rpcwallet.

The connections field of bitcoin-cli -getinfo is now expanded to return a JSON \ 
object with in, out and total numbers of peer connections. It previously \ 
returned a single integer value for the total number of peer connections.

New settings

The startupnotify option is used to specify a command to execute when Bitcoin \ 
Core has finished with its startup sequence.

Backwards compatibility has been dropped for two getaddressinfo RPC \ 
deprecations, as notified in the 0.20 release notes. The deprecated label field \ 
has been removed as well as the deprecated labels behavior of returning a JSON \ 
object containing name and purpose key-value pairs. Since 0.20, the labels field \ 
returns a JSON array of label names.

To improve wallet privacy, the frequency of wallet rebroadcast attempts is \ 
reduced from approximately once every 15 minutes to once every 12-36 hours. To \ 
maintain a similar level of guarantee for initial broadcast of wallet \ 
transactions, the mempool tracks these transactions as a part of the newly \ 
introduced unbroadcast set. See the "P2P and network changes" section \ 
for more information on the unbroadcast set.

The sendtoaddress and sendmany RPCs accept an optional verbose=True argument to \ 
also return the fee reason about the sent tx.

The wallet can create a transaction without change even when the keypool is \ 
empty. Previously it failed.

The -salvagewallet startup option has been removed. A new salvage command has \ 
been added to the bitcoin-wallet tool which performs the salvage operations that \ 
-salvagewallet did.

A new configuration flag -maxapsfee has been added, which sets the max allowed \ 
avoid partial spends (APS) fee. It defaults to 0 (i.e. fee is the same with and \ 
without APS). Setting it to -1 will disable APS, unless -avoidpartialspends is \ 

The wallet will now avoid partial spends (APS) by default, if this does not \ 
result in a difference in fees compared to the non-APS variant. The allowed fee \ 
threshold can be adjusted using the new -maxapsfee configuration option.

The createwallet, loadwallet, and unloadwallet RPCs now accept load_on_startup \ 
options to modify the settings list. Unless these options are explicitly set to \ 
true or false, the list is not modified, so the RPC methods remain backwards \ 

A new send RPC with similar syntax to walletcreatefundedpsbt, including support \ 
for coin selection and a custom fee rate, is added. The send RPC is experimental \ 
and may change in subsequent releases.

The estimate_mode parameter is now case-insensitive in the bumpfee, \ 
fundrawtransaction, sendmany, sendtoaddress, send and walletcreatefundedpsbt \ 

The bumpfee RPC now uses conf_target rather than confTarget in the options.

fundrawtransaction and walletcreatefundedpsbt when used with the lockUnspents \ 
argument now lock manually selected coins, in addition to automatically selected \ 
coins. Note that locked coins are never used in automatic coin selection, but \ 
can still be manually selected.

The -zapwallettxes startup option has been removed and its functionality removed \ 
from the wallet. This option was originally intended to allow for rescuing \ 
wallets which were affected by a malleability attack. More recently, it has been \ 
used in the fee bumping of transactions that did not signal RBF. This \ 
functionality has been superseded with the abandon transaction feature.

The error code when no wallet is loaded, but a wallet RPC is called, has been \ 
changed from -32601 (method not found) to -18 (wallet not found).
   2021-01-01 10:52:45 by Ryo ONODERA | Files touched by this commit (357)
Log message:
*: Recursive revbump from audio/pulseaudio-14.0
   2021-01-01 09:24:59 by Ryo ONODERA | Files touched by this commit (266)
Log message:
*: Recursive revbump from boost-1.75.0
   2020-11-05 10:09:30 by Ryo ONODERA | Files touched by this commit (1814)
Log message:
*: Recursive revbump from textproc/icu-68.1
   2020-08-18 19:58:18 by Leonardo Taccari | Files touched by this commit (549)
Log message:
*: revbump for libsndfile
   2020-08-17 22:20:41 by Leonardo Taccari | Files touched by this commit (2202)
Log message:
*: revbump after fontconfig bl3 changes (libuuid removal)
   2020-08-03 17:01:16 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
bitcoin: updated to 0.20.1

0.20.1 change log

* Fix GBT: Restore "!segwit" and "csv" to "rules" \ 
key (luke-jr)

P2P protocol and network code
* Replace automatic bans with discouragement filter (sipa)

* Handle concurrent wallet loading (promag)
* Minimal fix to restore conflicted transaction notifications (ryanofsky)

RPC and other APIs
* Increment input value sum only once per UTXO in decodepsbt (fanquake)
* psbt: Increment input value sum only once per UTXO in decodepsbt (achow101)
* psbt: Include and allow both non_witness_utxo and witness_utxo for segwit \ 
inputs (achow101)

* Add missing QPainterPath include (achow101)
* update Qt base translations for macOS release (fanquake)

Build system
* improve build OS configure output (skmcontrib)
* qt, build: Fix QFileDialog for static builds (hebasto)

Tests and QA
* Remove cached directories and associated script blocks from appveyor config \ 
* appveyor: Remove clcache (MarcoFalke)

* util: Don't reference errno when pthread fails (miztake)
* Fix locking on WSL using flock instead of fcntl