From 318655c3951d69adfa0aaf9f7b5064172678494f Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 23 Feb 2022 00:09:43 +0100 Subject: [PATCH 1/8] Add missing references to signet in the release process --- doc/release-process.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/release-process.md b/doc/release-process.md index 5a74f72b6e2..bad0e8cd72e 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -301,13 +301,14 @@ Both variables are used as a guideline for how much space the user needs on thei Note that all values should be taken from a **fully synced** node and have an overhead of 5-10% added on top of its base value. To calculate `m_assumed_blockchain_size`: -- For `mainnet` -> Take the size of the data directory, excluding `/regtest` and `/testnet3` directories. +- For `mainnet` -> Take the size of the data directory, excluding the `/testnet3`, `/signet`, and `/regtest` directories. - For `testnet` -> Take the size of the `/testnet3` directory. - +- For `signet` -> Take the size of the `/signet` directory. To calculate `m_assumed_chain_state_size`: - For `mainnet` -> Take the size of the `/chainstate` directory. - For `testnet` -> Take the size of the `/testnet3/chainstate` directory. +- For `signet` -> Take the size of the `/signet/chainstate` directory. Notes: - When taking the size for `m_assumed_blockchain_size`, there's no need to exclude the `/chainstate` directory since it's a guideline value and an overhead will be added anyway. From b4d2d74767ed0441dbc3a789cad2334eaac54290 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 23 Feb 2022 00:11:52 +0100 Subject: [PATCH 2/8] Release process: specify blockchain/chain_state units, reduce repetition --- doc/release-process.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/release-process.md b/doc/release-process.md index bad0e8cd72e..b0f7ab02dbb 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -300,15 +300,15 @@ cat "$VERSION"/*/all.SHA256SUMS.asc > SHA256SUMS.asc Both variables are used as a guideline for how much space the user needs on their drive in total, not just strictly for the blockchain. Note that all values should be taken from a **fully synced** node and have an overhead of 5-10% added on top of its base value. -To calculate `m_assumed_blockchain_size`: -- For `mainnet` -> Take the size of the data directory, excluding the `/testnet3`, `/signet`, and `/regtest` directories. -- For `testnet` -> Take the size of the `/testnet3` directory. -- For `signet` -> Take the size of the `/signet` directory. +To calculate `m_assumed_blockchain_size`, take the size in GiB of these directories: +- For `mainnet` -> the data directory, excluding the `/testnet3`, `/signet`, and `/regtest` directories +- For `testnet` -> `/testnet3` +- For `signet` -> `/signet` -To calculate `m_assumed_chain_state_size`: -- For `mainnet` -> Take the size of the `/chainstate` directory. -- For `testnet` -> Take the size of the `/testnet3/chainstate` directory. -- For `signet` -> Take the size of the `/signet/chainstate` directory. +To calculate `m_assumed_chain_state_size`, take the size in GiB of these directories: +- For `mainnet` -> `/chainstate` +- For `testnet` -> `/testnet3/chainstate` +- For `signet` -> `/signet/chainstate` Notes: - When taking the size for `m_assumed_blockchain_size`, there's no need to exclude the `/chainstate` directory since it's a guideline value and an overhead will be added anyway. From e538eada7c559362f43051f18d38b3d3c3be2dc8 Mon Sep 17 00:00:00 2001 From: laanwj <126646+laanwj@users.noreply.github.com> Date: Mon, 28 Feb 2022 17:39:15 +0100 Subject: [PATCH 3/8] Release process: exclude huge files for mainnet m_assumed_blockchain_size --- doc/release-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-process.md b/doc/release-process.md index b0f7ab02dbb..1031c6c9c14 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -301,7 +301,7 @@ Both variables are used as a guideline for how much space the user needs on thei Note that all values should be taken from a **fully synced** node and have an overhead of 5-10% added on top of its base value. To calculate `m_assumed_blockchain_size`, take the size in GiB of these directories: -- For `mainnet` -> the data directory, excluding the `/testnet3`, `/signet`, and `/regtest` directories +- For `mainnet` -> the data directory, excluding the `/testnet3`, `/signet`, and `/regtest` directories and any overly large files, e.g. a huge `debug.log` - For `testnet` -> `/testnet3` - For `signet` -> `/signet` From e8f844888f3663d0cbb8765271d1ee5fea4af579 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 23 Feb 2022 21:41:01 +0100 Subject: [PATCH 4/8] Clarify release process overhead note to be more actionable --- doc/release-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-process.md b/doc/release-process.md index 1031c6c9c14..f5f343a6a3f 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -312,4 +312,4 @@ To calculate `m_assumed_chain_state_size`, take the size in GiB of these directo Notes: - When taking the size for `m_assumed_blockchain_size`, there's no need to exclude the `/chainstate` directory since it's a guideline value and an overhead will be added anyway. -- The expected overhead for growth may change over time, so it may not be the same value as last release; pay attention to that when changing the variables. +- The expected overhead for growth may change over time. Consider whether the percentage needs to be changed in response; if so, update it here in this section. From 584147682ad670cd3be99006af5d643549bba3bc Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Wed, 23 Feb 2022 21:19:10 +0100 Subject: [PATCH 5/8] Reorganize release process chainparams section to reduce repetition --- doc/release-process.md | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/doc/release-process.md b/doc/release-process.md index f5f343a6a3f..b640084b46e 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -28,14 +28,17 @@ Release Process #### Before branch-off * Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example. -* Update [`src/chainparams.cpp`](/src/chainparams.cpp) m_assumed_blockchain_size and m_assumed_chain_state_size with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). -* Update [`src/chainparams.cpp`](/src/chainparams.cpp) chainTxData with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC, see - [this pull request](https://github.com/bitcoin/bitcoin/pull/20263) for an example. Reviewers can verify the results by running `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. -* Update `src/chainparams.cpp` nMinimumChainWork and defaultAssumeValid (and the block height comment) with information from the `getblockheader` (and `getblockhash`) RPCs. - - The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip. - - Testnet should be set some tens of thousands back from the tip due to reorgs there. - - This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect - that causes rejection of blocks in the past history. +* Update the following variables in [`src/chainparams.cpp`](/src/chainparams.cpp): + - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see + [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). + - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC, see + [this pull request](https://github.com/bitcoin/bitcoin/pull/20263) for an example. Reviewers can verify the results by running + `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. + - `nMinimumChainWork` and `defaultAssumeValid` (and the block height comment) with information from the `getblockheader` (and `getblockhash`) RPCs. + - The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip. + - Testnet should be set some tens of thousands back from the tip due to reorgs there. + - This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect + that causes rejection of blocks in the past history. - Clear the release notes and move them to the wiki (see "Write the release notes" below). - Translations on Transifex - Create [a new resource](https://www.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `[bitcoin.qt-translation-x]`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it. From fe048f7f7cd15597f24ca219a0077c46d088ca30 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Mon, 28 Feb 2022 15:07:48 +0100 Subject: [PATCH 6/8] Specify in release process which chains need to be updated --- doc/release-process.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/release-process.md b/doc/release-process.md index b640084b46e..ddd1b9266b0 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -28,7 +28,7 @@ Release Process #### Before branch-off * Update hardcoded [seeds](/contrib/seeds/README.md), see [this pull request](https://github.com/bitcoin/bitcoin/pull/7415) for an example. -* Update the following variables in [`src/chainparams.cpp`](/src/chainparams.cpp): +* Update the following variables in [`src/chainparams.cpp`](/src/chainparams.cpp) for mainnet, testnet, and signet: - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC, see From 415345d5475854ae34056594ac0bc464d739d3af Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Thu, 24 Feb 2022 22:58:53 +0100 Subject: [PATCH 7/8] Release process: use 4096 blocks and getbestblockhash for getchaintxstats --- doc/release-process.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/release-process.md b/doc/release-process.md index ddd1b9266b0..680aee9e851 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -31,7 +31,8 @@ Release Process * Update the following variables in [`src/chainparams.cpp`](/src/chainparams.cpp) for mainnet, testnet, and signet: - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). - - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC, see + - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC with an + `nBlocks` of 4096 (28 days) and a `bestblockhash` of RPC `getbestblockhash`; see [this pull request](https://github.com/bitcoin/bitcoin/pull/20263) for an example. Reviewers can verify the results by running `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. - `nMinimumChainWork` and `defaultAssumeValid` (and the block height comment) with information from the `getblockheader` (and `getblockhash`) RPCs. From 74743ad90590708b46a8bc8cb9cefedb66471306 Mon Sep 17 00:00:00 2001 From: Jon Atack Date: Mon, 28 Feb 2022 14:52:39 +0100 Subject: [PATCH 8/8] Clarify in release process how to update defaultAssumeValid/nMinimumChainWork --- doc/release-process.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/release-process.md b/doc/release-process.md index 680aee9e851..79df1074a43 100644 --- a/doc/release-process.md +++ b/doc/release-process.md @@ -31,15 +31,17 @@ Release Process * Update the following variables in [`src/chainparams.cpp`](/src/chainparams.cpp) for mainnet, testnet, and signet: - `m_assumed_blockchain_size` and `m_assumed_chain_state_size` with the current size plus some overhead (see [this](#how-to-calculate-assumed-blockchain-and-chain-state-size) for information on how to calculate them). + - The following updates should be reviewed with `reindex-chainstate` and `assumevalid=0` to catch any defect + that causes rejection of blocks in the past history. - `chainTxData` with statistics about the transaction count and rate. Use the output of the `getchaintxstats` RPC with an `nBlocks` of 4096 (28 days) and a `bestblockhash` of RPC `getbestblockhash`; see [this pull request](https://github.com/bitcoin/bitcoin/pull/20263) for an example. Reviewers can verify the results by running `getchaintxstats ` with the `window_block_count` and `window_final_block_hash` from your output. - - `nMinimumChainWork` and `defaultAssumeValid` (and the block height comment) with information from the `getblockheader` (and `getblockhash`) RPCs. - - The selected value must not be orphaned so it may be useful to set the value two blocks back from the tip. - - Testnet should be set some tens of thousands back from the tip due to reorgs there. - - This update should be reviewed with a reindex-chainstate with assumevalid=0 to catch any defect - that causes rejection of blocks in the past history. + - `defaultAssumeValid` with the output of RPC `getblockhash` using the `height` of `window_final_block_height` above + (and update the block height comment with that height), taking into account the following: + - On mainnet, the selected value must not be orphaned, so it may be useful to set the height two blocks back from the tip. + - Testnet should be set with a height some tens of thousands back from the tip, due to reorgs there. + - `nMinimumChainWork` with the "chainwork" value of RPC `getblockheader` using the same height as that selected for the previous step. - Clear the release notes and move them to the wiki (see "Write the release notes" below). - Translations on Transifex - Create [a new resource](https://www.transifex.com/bitcoin/bitcoin/content/) named after the major version with the slug `[bitcoin.qt-translation-x]`, where `RRR` is the major branch number padded with zeros. Use `src/qt/locale/bitcoin_en.xlf` to create it.