mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-04-26 21:37:56 +00:00
Remove discarded blocks and states from database by default (#11983)
* 1.Add pruning param "canonical" in sc-cli. 2.Make PruningMode's default value to ArchiveCanonical. * Update tests in sc-state-db. * Update tests in sc-state-db. * 1.Add a new value `AllWithNonFinalized` in `enum BlocksPruning` which Corresponds to `blocks_pruning 0` in CLI . 2.Change value `All` to `AllFinalized` in `enum BlocksPruning` and make it to keep full finalized block history. * Make some corresponding adjustments based on the content in the conversation. * Update client/db/src/lib.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Apply suggestions from code review. * 1.Change `blocks_pruning` to be like `state_pruning` . * Fmt and add some doc. * Update client/cli/src/params/pruning_params.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update client/cli/src/params/pruning_params.rs Co-authored-by: Bastian Köcher <git@kchr.de> * Update doc. * Change `new_test_with_tx_storage` to take `BlocksPruning`. * Fmt Co-authored-by: Bastian Köcher <git@kchr.de>
This commit is contained in:
@@ -30,13 +30,16 @@ pub struct PruningParams {
|
||||
/// or for all of the canonical blocks (i.e 'archive-canonical').
|
||||
#[clap(alias = "pruning", long, value_name = "PRUNING_MODE")]
|
||||
pub state_pruning: Option<String>,
|
||||
/// Specify the number of finalized blocks to keep in the database.
|
||||
/// Specify the blocks pruning mode, a number of blocks to keep or 'archive'.
|
||||
///
|
||||
/// Default is to keep all blocks.
|
||||
/// Default is to keep all finalized blocks.
|
||||
/// otherwise, all blocks can be kept (i.e 'archive'),
|
||||
/// or for all canonical blocks (i.e 'archive-canonical'),
|
||||
/// or for the last N blocks (i.e a number).
|
||||
///
|
||||
/// NOTE: only finalized blocks are subject for removal!
|
||||
#[clap(alias = "keep-blocks", long, value_name = "COUNT")]
|
||||
pub blocks_pruning: Option<u32>,
|
||||
pub blocks_pruning: Option<String>,
|
||||
}
|
||||
|
||||
impl PruningParams {
|
||||
@@ -46,9 +49,12 @@ impl PruningParams {
|
||||
.as_ref()
|
||||
.map(|s| match s.as_str() {
|
||||
"archive" => Ok(PruningMode::ArchiveAll),
|
||||
"archive-canonical" => Ok(PruningMode::ArchiveCanonical),
|
||||
bc => bc
|
||||
.parse()
|
||||
.map_err(|_| error::Error::Input("Invalid pruning mode specified".to_string()))
|
||||
.map_err(|_| {
|
||||
error::Error::Input("Invalid state pruning mode specified".to_string())
|
||||
})
|
||||
.map(PruningMode::blocks_pruning),
|
||||
})
|
||||
.transpose()
|
||||
@@ -56,9 +62,18 @@ impl PruningParams {
|
||||
|
||||
/// Get the block pruning value from the parameters
|
||||
pub fn blocks_pruning(&self) -> error::Result<BlocksPruning> {
|
||||
Ok(match self.blocks_pruning {
|
||||
Some(n) => BlocksPruning::Some(n),
|
||||
None => BlocksPruning::All,
|
||||
})
|
||||
match self.blocks_pruning.as_ref() {
|
||||
Some(bp) => match bp.as_str() {
|
||||
"archive" => Ok(BlocksPruning::KeepAll),
|
||||
"archive-canonical" => Ok(BlocksPruning::KeepFinalized),
|
||||
bc => bc
|
||||
.parse()
|
||||
.map_err(|_| {
|
||||
error::Error::Input("Invalid blocks pruning mode specified".to_string())
|
||||
})
|
||||
.map(BlocksPruning::Some),
|
||||
},
|
||||
None => Ok(BlocksPruning::KeepFinalized),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user