Recently rejected cache for transaction queue (#9005)

* Store recently rejected transactions.

* Don't cache AlreadyImported rejections.

* Make the size of transaction verification queue dependent on pool size.

* Add a test for recently rejected.

* Fix logging for recently rejected.

* Make rejection cache smaller.

* obsolete test removed

* obsolete test removed

* Construct cache with_capacity.
This commit is contained in:
Tomasz Drwięga
2018-07-02 19:00:06 +02:00
committed by André Silva
parent a057532ee3
commit 9438afde32
11 changed files with 168 additions and 59 deletions

View File

@@ -362,7 +362,7 @@ fn execute_import(cmd: ImportBlockchain) -> Result<(), String> {
algorithm,
cmd.pruning_history,
cmd.pruning_memory,
cmd.check_seal
cmd.check_seal,
);
client_config.queue.verifier_settings = cmd.verifier_settings;

View File

@@ -544,6 +544,7 @@ fn execute_impl<Cr, Rr>(cmd: RunCmd, logger: Arc<RotatingLogger>, on_client_rq:
// fetch service
let fetch = fetch::Client::new().map_err(|e| format!("Error starting fetch client: {:?}", e))?;
let txpool_size = cmd.miner_options.pool_limits.max_count;
// create miner
let miner = Arc::new(Miner::new(
cmd.miner_options,
@@ -600,6 +601,7 @@ fn execute_impl<Cr, Rr>(cmd: RunCmd, logger: Arc<RotatingLogger>, on_client_rq:
);
client_config.queue.verifier_settings = cmd.verifier_settings;
client_config.transaction_verification_queue_size = ::std::cmp::max(2048, txpool_size / 4);
// set up bootnodes
let mut net_conf = cmd.net_conf;

View File

@@ -182,7 +182,7 @@ impl SnapshotCommand {
algorithm,
self.pruning_history,
self.pruning_memory,
true
true,
);
let client_db = db::open_client_db(&client_path, &client_config)?;

View File

@@ -122,7 +122,7 @@ impl Default for UserDefaults {
fn default() -> Self {
UserDefaults {
is_first_launch: true,
pruning: Algorithm::default(),
pruning: Algorithm::OverlayRecent,
tracing: false,
fat_db: false,
mode: Mode::Active,