aboutsummaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/bips.md3
-rw-r--r--doc/files.md24
-rw-r--r--doc/release-notes-14582.md14
-rw-r--r--doc/release-notes-15367.md6
-rw-r--r--doc/release-notes-15454.md6
-rw-r--r--doc/release-notes-15937.md15
-rw-r--r--doc/release-notes-16378.md6
-rw-r--r--doc/release-notes-16525.md9
-rw-r--r--doc/release-notes-18244.md7
-rw-r--r--doc/release-notes-18309.md4
-rw-r--r--doc/release-notes-19405.md12
-rw-r--r--doc/release-notes-19671.md6
-rw-r--r--doc/release-notes-19731.md6
-rw-r--r--doc/release-notes.md101
14 files changed, 116 insertions, 103 deletions
diff --git a/doc/bips.md b/doc/bips.md
index 2d099b9626..ad6f7a0767 100644
--- a/doc/bips.md
+++ b/doc/bips.md
@@ -37,7 +37,8 @@ BIPs that are implemented by Bitcoin Core (up-to-date up to **v0.21.0**):
* [`BIP 145`](https://github.com/bitcoin/bips/blob/master/bip-0145.mediawiki): getblocktemplate updates for Segregated Witness as of **v0.13.0** ([PR 8149](https://github.com/bitcoin/bitcoin/pull/8149)).
* [`BIP 147`](https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki): NULLDUMMY softfork as of **v0.13.1** ([PR 8636](https://github.com/bitcoin/bitcoin/pull/8636) and [PR 8937](https://github.com/bitcoin/bitcoin/pull/8937)), *buried* since **v0.19.0** ([PR #16060](https://github.com/bitcoin/bitcoin/pull/16060)).
* [`BIP 152`](https://github.com/bitcoin/bips/blob/master/bip-0152.mediawiki): Compact block transfer and related optimizations are used as of **v0.13.0** ([PR 8068](https://github.com/bitcoin/bitcoin/pull/8068)).
-- [`BIP 158`](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki): Compact Block Filters for Light Clients can be indexed as of **v0.19.0** ([PR #14121](https://github.com/bitcoin/bitcoin/pull/14121)).
+* [`BIP 155`](https://github.com/bitcoin/bips/blob/master/bip-0155.mediawiki): The 'addrv2' and 'sendaddrv2' messages which enable relay of Tor V3 addresses (and other networks) are supported as of **v0.21.0** ([PR 19954](https://github.com/bitcoin/bitcoin/pull/19954)).
+* [`BIP 158`](https://github.com/bitcoin/bips/blob/master/bip-0158.mediawiki): Compact Block Filters for Light Clients can be indexed as of **v0.19.0** ([PR #14121](https://github.com/bitcoin/bitcoin/pull/14121)).
* [`BIP 159`](https://github.com/bitcoin/bips/blob/master/bip-0159.mediawiki): The `NODE_NETWORK_LIMITED` service bit is signalled as of **v0.16.0** ([PR 11740](https://github.com/bitcoin/bitcoin/pull/11740)), and such nodes are connected to as of **v0.17.0** ([PR 10387](https://github.com/bitcoin/bitcoin/pull/10387)).
* [`BIP 173`](https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki): Bech32 addresses for native Segregated Witness outputs are supported as of **v0.16.0** ([PR 11167](https://github.com/bitcoin/bitcoin/pull/11167)). Bech32 addresses are generated by default as of **v0.20.0** ([PR 16884](https://github.com/bitcoin/bitcoin/pull/16884)).
* [`BIP 174`](https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki): RPCs to operate on Partially Signed Bitcoin Transactions (PSBT) are present as of **v0.17.0** ([PR 13557](https://github.com/bitcoin/bitcoin/pull/13557)).
diff --git a/doc/files.md b/doc/files.md
index 52e094a60b..64cff43d3f 100644
--- a/doc/files.md
+++ b/doc/files.md
@@ -26,15 +26,16 @@ Linux | `$HOME/.bitcoin/`
macOS | `$HOME/Library/Application Support/Bitcoin/`
Windows | `%APPDATA%\Bitcoin\` <sup>[\[1\]](#note1)</sup>
-2. The non-default data directory path can be specified by `-datadir` option.
+2. A custom data directory path can be specified with the `-datadir` option.
3. All content of the data directory, except for `bitcoin.conf` file, is chain-specific. This means the actual data directory paths for non-mainnet cases differ:
-Chain option | Data directory path
---------------------|--------------------
-no option (mainnet) | *path_to_datadir*`/`
-`-testnet` | *path_to_datadir*`/testnet3/`
-`-regtest` | *path_to_datadir*`/regtest/`
+Chain option | Data directory path
+-------------------------------|------------------------------
+`-chain=main` (default) | *path_to_datadir*`/`
+`-chain=test` or `-testnet` | *path_to_datadir*`/testnet3/`
+`-chain=signet` or `-signet` | *path_to_datadir*`/signet/`
+`-chain=regtest` or `-regtest` | *path_to_datadir*`/regtest/`
## Data directory layout
@@ -44,19 +45,20 @@ Subdirectory | File(s) | Description
`blocks/index/` | LevelDB database | Block index; `-blocksdir` option does not affect this path
`blocks/` | `blkNNNNN.dat`<sup>[\[2\]](#note2)</sup> | Actual Bitcoin blocks (in network format, dumped in raw on disk, 128 MiB per file)
`blocks/` | `revNNNNN.dat`<sup>[\[2\]](#note2)</sup> | Block undo data (custom format)
-`chainstate/` | LevelDB database | Blockchain state (a compact representation of all currently unspent transaction outputs and some metadata about the transactions they are from)
+`chainstate/` | LevelDB database | Blockchain state (a compact representation of all currently unspent transaction outputs (UTXOs) and metadata about the transactions they are from)
`indexes/txindex/` | LevelDB database | Transaction index; *optional*, used if `-txindex=1`
`indexes/blockfilter/basic/db/` | LevelDB database | Blockfilter index LevelDB database for the basic filtertype; *optional*, used if `-blockfilterindex=basic`
`indexes/blockfilter/basic/` | `fltrNNNNN.dat`<sup>[\[2\]](#note2)</sup> | Blockfilter index filters for the basic filtertype; *optional*, used if `-blockfilterindex=basic`
-`wallets/` | | [Contains wallets](#multi-wallet-environment); can be specified by `-walletdir` option; if `wallets/` subdirectory does not exist, a wallet resides in the data directory
+`wallets/` | | [Contains wallets](#multi-wallet-environment); can be specified by `-walletdir` option; if `wallets/` subdirectory does not exist, wallets reside in the [data directory](#data-directory-location)
`./` | `banlist.dat` | Stores the IPs/subnets of banned nodes
`./` | `bitcoin.conf` | User-defined [configuration settings](bitcoin-conf.md) for `bitcoind` or `bitcoin-qt`. File is not written to by the software and must be created manually. Path can be specified by `-conf` option
`./` | `bitcoind.pid` | Stores the process ID (PID) of `bitcoind` or `bitcoin-qt` while running; created at start and deleted on shutdown; can be specified by `-pid` option
`./` | `debug.log` | Contains debug information and general logging generated by `bitcoind` or `bitcoin-qt`; can be specified by `-debuglogfile` option
`./` | `fee_estimates.dat` | Stores statistics used to estimate minimum transaction fees and priorities required for confirmation
`./` | `guisettings.ini.bak` | Backup of former [GUI settings](#gui-settings) after `-resetguisettings` option is used
+`./` | `ip_asn.map` | IP addresses to Autonomous System Numbers (ASNs) mapping used for bucketing of the peers; path can be specified with the `-asmap` option
`./` | `mempool.dat` | Dump of the mempool's transactions
-`./` | `onion_private_key` | Cached Tor onion service private key for `-listenonion` option
+`./` | `onion_v3_private_key` | Cached Tor onion service private key for `-listenonion` option
`./` | `peers.dat` | Peer IP address database (custom format)
`./` | `settings.json` | Read-write settings set through GUI or RPC interfaces, augmenting manual settings from [bitcoin.conf](bitcoin-conf.md). File is created automatically if read-write settings storage is not disabled with `-nosettings` option. Path can be specified with `-settings` option
`./` | `.cookie` | Session RPC authentication cookie; if used, created at start and deleted on shutdown; can be specified by `-rpccookiefile` option
@@ -98,10 +100,10 @@ Path | Description | Repository notes
`blkindex.dat` | Blockchain index BDB database; replaced by {`chainstate/`, `blocks/index/`, `blocks/revNNNNN.dat`<sup>[\[2\]](#note2)</sup>} in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677)
`blk000?.dat` | Block data (custom format, 2 GiB per file); replaced by `blocks/blkNNNNN.dat`<sup>[\[2\]](#note2)</sup> in 0.8.0 | [PR #1677](https://github.com/bitcoin/bitcoin/pull/1677)
`addr.dat` | Peer IP address BDB database; replaced by `peers.dat` in [0.7.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.7.0.md) | [PR #1198](https://github.com/bitcoin/bitcoin/pull/1198), [`928d3a01`](https://github.com/bitcoin/bitcoin/commit/928d3a011cc66c7f907c4d053f674ea77dc611cc)
+`onion_private_key` | Cached Tor onion service private key for `-listenonion` option. Was used for Tor v2 services; replaced by `onion_v3_private_key` in [0.21.0](https://github.com/bitcoin/bitcoin/blob/master/doc/release-notes/release-notes-0.21.0.md) | [PR #19954](https://github.com/bitcoin/bitcoin/pull/19954)
## Notes
-<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this paper.
+<a name="note1">1</a>. The `/` (slash, U+002F) is used as the platform-independent path component separator in this document.
<a name="note2">2</a>. `NNNNN` matches `[0-9]{5}` regex.
-
diff --git a/doc/release-notes-14582.md b/doc/release-notes-14582.md
deleted file mode 100644
index 28b0abecd7..0000000000
--- a/doc/release-notes-14582.md
+++ /dev/null
@@ -1,14 +0,0 @@
-Configuration
--------------
-
-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 set. (#14582)
-
-Wallet
-------
-
-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. (#14582)
diff --git a/doc/release-notes-15367.md b/doc/release-notes-15367.md
deleted file mode 100644
index 598e49dcae..0000000000
--- a/doc/release-notes-15367.md
+++ /dev/null
@@ -1,6 +0,0 @@
-Configuration option changes
-----------------------------
-
-- The `startupnotify` option is used to specify a command to
- execute when Bitcoin Core has finished with its startup
- sequence. (#15367) \ No newline at end of file
diff --git a/doc/release-notes-15454.md b/doc/release-notes-15454.md
deleted file mode 100644
index 00c847a8d2..0000000000
--- a/doc/release-notes-15454.md
+++ /dev/null
@@ -1,6 +0,0 @@
-Wallet
-------
-
-Bitcoin Core will no longer create an unnamed `""` wallet by default when no wallet is specified on the command line or in the configuration files.
-For backwards compatibility, if an unnamed `""` wallet already exists and would have been loaded previously, then it will still be loaded.
-Users without an unnamed `""` wallet and without any other wallets to be loaded on startup will be prompted to either choose a wallet to load, or to create a new wallet.
diff --git a/doc/release-notes-15937.md b/doc/release-notes-15937.md
deleted file mode 100644
index 1ab817b0e5..0000000000
--- a/doc/release-notes-15937.md
+++ /dev/null
@@ -1,15 +0,0 @@
-Configuration
--------------
-
-Wallets created or loaded in the GUI will now be automatically loaded on
-startup, so they don't need to be manually reloaded next time Bitcoin is
-started. The list of wallets to load on startup is stored in
-`\<datadir\>/settings.json` and augments any command line or `bitcoin.conf`
-`-wallet=` settings that specify more wallets to load. Wallets that are
-unloaded in the GUI get removed from the settings list so they won't load again
-automatically next startup. (#19754)
-
-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 compatible. (#15937)
diff --git a/doc/release-notes-16378.md b/doc/release-notes-16378.md
deleted file mode 100644
index 958633e780..0000000000
--- a/doc/release-notes-16378.md
+++ /dev/null
@@ -1,6 +0,0 @@
-RPC
----
-- A new `send` RPC with similar syntax to `walletcreatefundedpsbt`, including
- support for coin selection and a custom fee rate. The `send` RPC is experimental
- and may change in subsequent releases. Using it is encouraged once it's no
- longer experimental: `sendmany` and `sendtoaddress` may be deprecated in a future release.
diff --git a/doc/release-notes-16525.md b/doc/release-notes-16525.md
deleted file mode 100644
index 220cb78de4..0000000000
--- a/doc/release-notes-16525.md
+++ /dev/null
@@ -1,9 +0,0 @@
-RPC changes
------------
-
-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.
diff --git a/doc/release-notes-18244.md b/doc/release-notes-18244.md
deleted file mode 100644
index 625fbaf7a1..0000000000
--- a/doc/release-notes-18244.md
+++ /dev/null
@@ -1,7 +0,0 @@
-Updated RPCs
-------------
-
-- `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.
diff --git a/doc/release-notes-18309.md b/doc/release-notes-18309.md
deleted file mode 100644
index b31f85eb6e..0000000000
--- a/doc/release-notes-18309.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Command-line options
------------------------------
-
-The same ZeroMQ notification (e.g. `-zmqpubhashtx=address`) can now be specified multiple times to publish the same notification to different ZeroMQ sockets. \ No newline at end of file
diff --git a/doc/release-notes-19405.md b/doc/release-notes-19405.md
deleted file mode 100644
index 14f2a81c7a..0000000000
--- a/doc/release-notes-19405.md
+++ /dev/null
@@ -1,12 +0,0 @@
-## Updated RPCs
-
-- `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. (#19405)
-
-## CLI
-
-- The `connections` field of `bitcoin-cli -getinfo` is 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. (#19405)
diff --git a/doc/release-notes-19671.md b/doc/release-notes-19671.md
deleted file mode 100644
index fb2d56d9a5..0000000000
--- a/doc/release-notes-19671.md
+++ /dev/null
@@ -1,6 +0,0 @@
-Wallet
-------
-
-* The `-zapwallettxes` startup option has been removed and its functionality removed from the wallet.
- This option was originally intended to allow for the fee bumping of transactions that did not
- signal RBF. This functionality has been superseded with the abandon transaction feature.
diff --git a/doc/release-notes-19731.md b/doc/release-notes-19731.md
deleted file mode 100644
index abe38e06af..0000000000
--- a/doc/release-notes-19731.md
+++ /dev/null
@@ -1,6 +0,0 @@
-Updated RPCs
-------------
-
-- 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. (#19731)
diff --git a/doc/release-notes.md b/doc/release-notes.md
index 24fcc23c01..65726f3d5d 100644
--- a/doc/release-notes.md
+++ b/doc/release-notes.md
@@ -60,6 +60,14 @@ From Bitcoin Core 0.20.0 onwards, macOS versions earlier than 10.12 are no
longer supported. Additionally, Bitcoin Core does not yet change appearance
when macOS "dark mode" is activated.
+The node's known peers are persisted to disk in a file called `peers.dat`. The
+format of this file has been changed in a backwards-incompatible way in order to
+accommodate the storage of Tor v3 and other BIP155 addresses. This means that if
+the file is modified by 0.21.0 or newer then older versions will not be able to
+read it. Those old versions, in the event of a downgrade, will log an error
+message that deserialization has failed and will continue normal operation
+as if the file was missing, creating a new empty one. (#19954)
+
Notable changes
===============
@@ -74,9 +82,37 @@ P2P and network changes
node using P2P relay. This version reduces the initial broadcast guarantees
for wallet transactions submitted via P2P to a node running the wallet. (#18038)
+- 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), then `onion_private_key` can be copied over
+ `onion_v3_private_key`, e.g.
+ `cp -f onion_private_key onion_v3_private_key`. (#19954)
+
Updated RPCs
------------
+- 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. (#19731)
+
+- `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. (#19405)
+
+- 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.
+ (#16525)
+
- `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
@@ -139,6 +175,10 @@ 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. (#18309)
+
- 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.
@@ -163,6 +203,10 @@ Changes to Wallet or GUI related settings can be found in the GUI or Wallet sec
Tools and Utilities
-------------------
+- The `connections` field of `bitcoin-cli -getinfo` is 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. (#19405)
+
- 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
@@ -175,6 +219,10 @@ Tools and Utilities
New settings
------------
+- The `startupnotify` option is used to specify a command to
+ execute when Bitcoin Core has finished with its startup
+ sequence. (#15367)
+
Wallet
------
@@ -201,6 +249,51 @@ Wallet
has been added to the `bitcoin-wallet` tool which performs the salvage
operations that `-salvagewallet` did. (#18918)
+- 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 set. (#14582)
+
+- 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. (#14582)
+
+- 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 compatible. (#15937)
+
+- A new `send` RPC with similar syntax to `walletcreatefundedpsbt`, including
+ support for coin selection and a custom fee rate. The `send` RPC is
+ experimental and may change in subsequent releases. Using it is encouraged
+ once it's no longer experimental: `sendmany` and `sendtoaddress` may be
+ deprecated in a future release. (#16378)
+
+- `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. (#18244)
+
+- The `-zapwallettxes` startup option has been removed and its functionality
+ removed from the wallet. This option was originally intended to allow for
+ the fee bumping of transactions that did not signal RBF. This functionality
+ has been superseded with the abandon transaction feature. (#19671)
+
+- 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).
+ (#20101)
+
+### Default Wallet
+
+Bitcoin Core will no longer create an unnamed `""` wallet by default when no
+wallet is specified on the command line or in the configuration files. For
+backwards compatibility, if an unnamed `""` wallet already exists and would
+have been loaded previously, then it will still be loaded. Users without an
+unnamed `""` wallet and without any other wallets to be loaded on startup will
+be prompted to either choose a wallet to load, or to create a new wallet.
+(#15454)
+
### Experimental Descriptor Wallets
Please note that Descriptor Wallets are still experimental and not all expected functionality
@@ -330,6 +423,14 @@ issue.
GUI changes
-----------
+- Wallets created or loaded in the GUI will now be automatically loaded on
+ startup, so they don't need to be manually reloaded next time Bitcoin Core is
+ started. The list of wallets to load on startup is stored in
+ `\<datadir\>/settings.json` and augments any command line or `bitcoin.conf`
+ `-wallet=` settings that specify more wallets to load. Wallets that are
+ unloaded in the GUI get removed from the settings list so they won't load
+ again automatically next startup. (#19754)
+
- The GUI Peers window no longer displays a "Ban Score" field. This is 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