Changeset View
Changeset View
Standalone View
Standalone View
doc/release-notes/release-notes-0.11.0.md
Show First 20 Lines • Show All 63 Lines • ▼ Show 20 Lines | |||||
The other is to restrict the relaying of free transactions with | The other is to restrict the relaying of free transactions with | ||||
`limitfreerelay`. This option sets the number of kB/minute at which | `limitfreerelay`. This option sets the number of kB/minute at which | ||||
free transactions (with enough priority) will be accepted. It defaults to 15. | free transactions (with enough priority) will be accepted. It defaults to 15. | ||||
Reducing this number reduces the speed at which the mempool can grow due | Reducing this number reduces the speed at which the mempool can grow due | ||||
to free transactions. | to free transactions. | ||||
For example, add the following to `bitcoin.conf`: | For example, add the following to `bitcoin.conf`: | ||||
minrelaytxfee=0.00005 | minrelaytxfee=0.00005 | ||||
limitfreerelay=5 | limitfreerelay=5 | ||||
More robust solutions are being worked on for a follow-up release. | More robust solutions are being worked on for a follow-up release. | ||||
Notable changes | Notable changes | ||||
=============== | =============== | ||||
Block file pruning | Block file pruning | ||||
---------------------- | ---------------------- | ||||
This release supports running a fully validating node without maintaining a copy | This release supports running a fully validating node without maintaining a copy | ||||
of the raw block and undo data on disk. To recap, there are four types of data | of the raw block and undo data on disk. To recap, there are four types of data | ||||
related to the blockchain in the bitcoin system: the raw blocks as received over | related to the blockchain in the bitcoin system: the raw blocks as received over | ||||
the network (blk???.dat), the undo data (rev???.dat), the block index and the | the network (blk???.dat), the undo data (rev???.dat), the block index and the | ||||
UTXO set (both LevelDB databases). The databases are built from the raw data. | UTXO set (both LevelDB databases). The databases are built from the raw data. | ||||
Block pruning allows Bitcoin Core to delete the raw block and undo data once | Block pruning allows Bitcoin Core to delete the raw block and undo data once | ||||
it's been validated and used to build the databases. At that point, the raw data | it's been validated and used to build the databases. At that point, the raw data | ||||
is used only to relay blocks to other nodes, to handle reorganizations, to look | is used only to relay blocks to other nodes, to handle reorganizations, to look | ||||
up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or | up old transactions (if -txindex is enabled or via the RPC/REST interfaces), or | ||||
for rescanning the wallet. The block index continues to hold the metadata about | for rescanning the wallet. The block index continues to hold the metadata about | ||||
all blocks in the blockchain. | all blocks in the blockchain. | ||||
The user specifies how much space to allot for block & undo files. The minimum | The user specifies how much space to allot for block & undo files. The minimum | ||||
allowed is 550MB. Note that this is in addition to whatever is required for the | allowed is 550MB. Note that this is in addition to whatever is required for the | ||||
block index and UTXO databases. The minimum was chosen so that Bitcoin Core will | block index and UTXO databases. The minimum was chosen so that Bitcoin Core will | ||||
be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 | be able to maintain at least 288 blocks on disk (two days worth of blocks at 10 | ||||
minutes per block). In rare instances it is possible that the amount of space | minutes per block). In rare instances it is possible that the amount of space | ||||
used will exceed the pruning target in order to keep the required last 288 | used will exceed the pruning target in order to keep the required last 288 | ||||
blocks on disk. | blocks on disk. | ||||
Block pruning works during initial sync in the same way as during steady state, | Block pruning works during initial sync in the same way as during steady state, | ||||
by deleting block files "as you go" whenever disk space is allocated. Thus, if | by deleting block files "as you go" whenever disk space is allocated. Thus, if | ||||
the user specifies 550MB, once that level is reached the program will begin | the user specifies 550MB, once that level is reached the program will begin | ||||
deleting the oldest block and undo files, while continuing to download the | deleting the oldest block and undo files, while continuing to download the | ||||
blockchain. | blockchain. | ||||
For now, block pruning disables block relay. In the future, nodes with block | For now, block pruning disables block relay. In the future, nodes with block | ||||
pruning will at a minimum relay "new" blocks, meaning blocks that extend their | pruning will at a minimum relay "new" blocks, meaning blocks that extend their | ||||
active chain. | active chain. | ||||
Block pruning is currently incompatible with running a wallet due to the fact | Block pruning is currently incompatible with running a wallet due to the fact | ||||
that block data is used for rescanning the wallet and importing keys or | that block data is used for rescanning the wallet and importing keys or | ||||
addresses (which require a rescan.) However, running the wallet with block | addresses (which require a rescan.) However, running the wallet with block | ||||
pruning will be supported in the near future, subject to those limitations. | pruning will be supported in the near future, subject to those limitations. | ||||
Block pruning is also incompatible with -txindex and will automatically disable | Block pruning is also incompatible with -txindex and will automatically disable | ||||
it. | it. | ||||
Once you have pruned blocks, going back to unpruned state requires | Once you have pruned blocks, going back to unpruned state requires | ||||
re-downloading the entire blockchain. To do this, re-start the node with | re-downloading the entire blockchain. To do this, re-start the node with | ||||
-reindex. Note also that any problem that would cause a user to reindex (e.g., | -reindex. Note also that any problem that would cause a user to reindex (e.g., | ||||
disk corruption) will cause a pruned node to redownload the entire blockchain. | disk corruption) will cause a pruned node to redownload the entire blockchain. | ||||
Finally, note that when a pruned node reindexes, it will delete any blk???.dat | Finally, note that when a pruned node reindexes, it will delete any blk???.dat | ||||
and rev???.dat files in the data directory prior to restarting the download. | and rev???.dat files in the data directory prior to restarting the download. | ||||
To enable block pruning on the command line: | To enable block pruning on the command line: | ||||
- `-prune=N`: where N is the number of MB to allot for raw block & undo data. | - `-prune=N`: where N is the number of MB to allot for raw block & undo data. | ||||
Modified RPC calls: | Modified RPC calls: | ||||
- `getblockchaininfo` now includes whether we are in pruned mode or not. | - `getblockchaininfo` now includes whether we are in pruned mode or not. | ||||
- `getblock` will check if the block's data has been pruned and if so, return an | - `getblock` will check if the block's data has been pruned and if so, return an | ||||
error. | error. | ||||
- `getrawtransaction` will no longer be able to locate a transaction that has a | - `getrawtransaction` will no longer be able to locate a transaction that has a | ||||
UTXO but where its block file has been pruned. | UTXO but where its block file has been pruned. | ||||
Pruning is disabled by default. | Pruning is disabled by default. | ||||
Big endian support | Big endian support | ||||
-------------------- | -------------------- | ||||
Experimental support for big-endian CPU architectures was added in this | Experimental support for big-endian CPU architectures was added in this | ||||
release. All little-endian specific code was replaced with endian-neutral | release. All little-endian specific code was replaced with endian-neutral | ||||
▲ Show 20 Lines • Show All 224 Lines • ▼ Show 20 Lines | |||||
- #5852 `cdae53e` Reinitialize state in between individual unit tests. | - #5852 `cdae53e` Reinitialize state in between individual unit tests. | ||||
- #5883 `164d7b6` tests: add a BasicTestingSetup and apply to all tests | - #5883 `164d7b6` tests: add a BasicTestingSetup and apply to all tests | ||||
- #5940 `446bb70` Regression test for ResendWalletTransactions | - #5940 `446bb70` Regression test for ResendWalletTransactions | ||||
- #6052 `cf7adad` fix and enable bip32 unit test | - #6052 `cf7adad` fix and enable bip32 unit test | ||||
- #6039 `734f80a` tests: Error when setgenerate is used on regtest | - #6039 `734f80a` tests: Error when setgenerate is used on regtest | ||||
- #6074 `948beaf` Correct the PUSHDATA4 minimal encoding test in script_invalid.json | - #6074 `948beaf` Correct the PUSHDATA4 minimal encoding test in script_invalid.json | ||||
- #6032 `e08886d` Stop nodes after RPC tests, even with --nocleanup | - #6032 `e08886d` Stop nodes after RPC tests, even with --nocleanup | ||||
- #6075 `df1609f` Add additional script edge condition tests | - #6075 `df1609f` Add additional script edge condition tests | ||||
- #5981 `da38dc6` Python P2P testing | - #5981 `da38dc6` Python P2P testing | ||||
- #5958 `9ef00c3` Add multisig rpc tests | - #5958 `9ef00c3` Add multisig rpc tests | ||||
- #6112 `fec5c0e` Add more script edge condition tests | - #6112 `fec5c0e` Add more script edge condition tests | ||||
### Miscellaneous | ### Miscellaneous | ||||
- #5457, #5506, #5952, #6047 Update libsecp256k1 | - #5457, #5506, #5952, #6047 Update libsecp256k1 | ||||
- #5437 `84857e8` Add missing CAutoFile::IsNull() check in main | - #5437 `84857e8` Add missing CAutoFile::IsNull() check in main | ||||
- #5490 `ec20fd7` Replace uint256/uint160 with opaque blobs where possible | - #5490 `ec20fd7` Replace uint256/uint160 with opaque blobs where possible | ||||
- #5654, #5764 Adding jonasschnelli's GPG key | - #5654, #5764 Adding jonasschnelli's GPG key | ||||
▲ Show 20 Lines • Show All 117 Lines • Show Last 20 Lines |