disable chain compaction on archive nodes ()

* disable chain compaction when in archive mode

* rustfmt
This commit is contained in:
Antioch Peverell 2018-09-10 15:59:42 +01:00 committed by GitHub
parent da87f5fef4
commit dbe53f63c8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 18 additions and 0 deletions

View file

@ -140,6 +140,7 @@ pub struct Chain {
verifier_cache: Arc<RwLock<VerifierCache>>,
// POW verification function
pow_verifier: fn(&BlockHeader, u8) -> bool,
archive_mode: bool,
}
unsafe impl Sync for Chain {}
@ -156,6 +157,7 @@ impl Chain {
genesis: Block,
pow_verifier: fn(&BlockHeader, u8) -> bool,
verifier_cache: Arc<RwLock<VerifierCache>>,
archive_mode: bool,
) -> Result<Chain, Error> {
let chain_store = store::ChainStore::new(db_env)?;
@ -187,6 +189,7 @@ impl Chain {
pow_verifier,
verifier_cache,
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
/// therefore be called judiciously.
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.");
// Compact the txhashset via the extension.
{

View file

@ -55,6 +55,7 @@ fn setup(dir_name: &str) -> Chain {
genesis_block,
pow::verify_size,
verifier_cache,
false,
).unwrap()
}
@ -68,6 +69,7 @@ fn reload_chain(dir_name: &str) -> Chain {
genesis::genesis_dev(),
pow::verify_size,
verifier_cache,
false,
).unwrap()
}

View file

@ -52,6 +52,7 @@ fn setup(dir_name: &str, genesis: Block) -> Chain {
genesis,
pow::verify_size,
verifier_cache,
false,
).unwrap()
}
@ -497,6 +498,7 @@ fn actual_diff_iter_output() {
genesis_block,
pow::verify_size,
verifier_cache,
false,
).unwrap();
let iter = chain.difficulty_iter();
let mut last_time = 0;

View file

@ -57,6 +57,7 @@ fn test_coinbase_maturity() {
genesis_block,
pow::verify_size,
verifier_cache,
false,
).unwrap();
let prev = chain.head_header().unwrap();

View file

@ -165,6 +165,7 @@ impl Server {
genesis.clone(),
pow::verify_size,
verifier_cache.clone(),
archive_mode,
)?);
pool_adapter.set_chain(Arc::downgrade(&shared_chain));

View file

@ -111,6 +111,7 @@ where
genesis_block,
pow::verify_size,
verifier_cache,
false,
).unwrap();
let (tx, rx) = channel();
let retval = WalletProxy {