mirror of
https://github.com/mimblewimble/grin.git
synced 2025-05-01 23:01:15 +03:00
disable chain compaction on archive nodes (#1498)
* disable chain compaction when in archive mode * rustfmt
This commit is contained in:
parent
da87f5fef4
commit
dbe53f63c8
6 changed files with 18 additions and 0 deletions
chain
servers/src/grin
wallet/tests/common
|
@ -140,6 +140,7 @@ pub struct Chain {
|
||||||
verifier_cache: Arc<RwLock<VerifierCache>>,
|
verifier_cache: Arc<RwLock<VerifierCache>>,
|
||||||
// POW verification function
|
// POW verification function
|
||||||
pow_verifier: fn(&BlockHeader, u8) -> bool,
|
pow_verifier: fn(&BlockHeader, u8) -> bool,
|
||||||
|
archive_mode: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
unsafe impl Sync for Chain {}
|
unsafe impl Sync for Chain {}
|
||||||
|
@ -156,6 +157,7 @@ impl Chain {
|
||||||
genesis: Block,
|
genesis: Block,
|
||||||
pow_verifier: fn(&BlockHeader, u8) -> bool,
|
pow_verifier: fn(&BlockHeader, u8) -> bool,
|
||||||
verifier_cache: Arc<RwLock<VerifierCache>>,
|
verifier_cache: Arc<RwLock<VerifierCache>>,
|
||||||
|
archive_mode: bool,
|
||||||
) -> Result<Chain, Error> {
|
) -> Result<Chain, Error> {
|
||||||
let chain_store = store::ChainStore::new(db_env)?;
|
let chain_store = store::ChainStore::new(db_env)?;
|
||||||
|
|
||||||
|
@ -187,6 +189,7 @@ impl Chain {
|
||||||
pow_verifier,
|
pow_verifier,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
block_hashes_cache: Arc::new(RwLock::new(VecDeque::with_capacity(HASHES_CACHE_SIZE))),
|
block_hashes_cache: Arc::new(RwLock::new(VecDeque::with_capacity(HASHES_CACHE_SIZE))),
|
||||||
|
archive_mode,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -664,6 +667,14 @@ impl Chain {
|
||||||
/// Meanwhile, the chain will not be able to accept new blocks. It should
|
/// Meanwhile, the chain will not be able to accept new blocks. It should
|
||||||
/// therefore be called judiciously.
|
/// therefore be called judiciously.
|
||||||
pub fn compact(&self) -> Result<(), Error> {
|
pub fn compact(&self) -> Result<(), Error> {
|
||||||
|
if self.archive_mode {
|
||||||
|
debug!(
|
||||||
|
LOGGER,
|
||||||
|
"Blockchain compaction disabled, node running in archive mode."
|
||||||
|
);
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
debug!(LOGGER, "Starting blockchain compaction.");
|
debug!(LOGGER, "Starting blockchain compaction.");
|
||||||
// Compact the txhashset via the extension.
|
// Compact the txhashset via the extension.
|
||||||
{
|
{
|
||||||
|
|
|
@ -55,6 +55,7 @@ fn setup(dir_name: &str) -> Chain {
|
||||||
genesis_block,
|
genesis_block,
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap()
|
).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,6 +69,7 @@ fn reload_chain(dir_name: &str) -> Chain {
|
||||||
genesis::genesis_dev(),
|
genesis::genesis_dev(),
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap()
|
).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -52,6 +52,7 @@ fn setup(dir_name: &str, genesis: Block) -> Chain {
|
||||||
genesis,
|
genesis,
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap()
|
).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -497,6 +498,7 @@ fn actual_diff_iter_output() {
|
||||||
genesis_block,
|
genesis_block,
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap();
|
).unwrap();
|
||||||
let iter = chain.difficulty_iter();
|
let iter = chain.difficulty_iter();
|
||||||
let mut last_time = 0;
|
let mut last_time = 0;
|
||||||
|
|
|
@ -57,6 +57,7 @@ fn test_coinbase_maturity() {
|
||||||
genesis_block,
|
genesis_block,
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap();
|
).unwrap();
|
||||||
|
|
||||||
let prev = chain.head_header().unwrap();
|
let prev = chain.head_header().unwrap();
|
||||||
|
|
|
@ -165,6 +165,7 @@ impl Server {
|
||||||
genesis.clone(),
|
genesis.clone(),
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache.clone(),
|
verifier_cache.clone(),
|
||||||
|
archive_mode,
|
||||||
)?);
|
)?);
|
||||||
|
|
||||||
pool_adapter.set_chain(Arc::downgrade(&shared_chain));
|
pool_adapter.set_chain(Arc::downgrade(&shared_chain));
|
||||||
|
|
|
@ -111,6 +111,7 @@ where
|
||||||
genesis_block,
|
genesis_block,
|
||||||
pow::verify_size,
|
pow::verify_size,
|
||||||
verifier_cache,
|
verifier_cache,
|
||||||
|
false,
|
||||||
).unwrap();
|
).unwrap();
|
||||||
let (tx, rx) = channel();
|
let (tx, rx) = channel();
|
||||||
let retval = WalletProxy {
|
let retval = WalletProxy {
|
||||||
|
|
Loading…
Add table
Reference in a new issue