diem_config/config/
mempool_config.rs

1// Copyright (c) The Diem Core Contributors
2// SPDX-License-Identifier: Apache-2.0
3
4// Copyright 2021 Conflux Foundation. All rights reserved.
5// Conflux is free software and distributed under GNU General Public License.
6// See http://www.gnu.org/licenses/
7
8use serde::{Deserialize, Serialize};
9
10#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)]
11#[serde(default, deny_unknown_fields)]
12pub struct MempoolConfig {
13    pub capacity: usize,
14    pub max_broadcasts_per_peer: usize,
15    pub shared_mempool_ack_timeout_ms: u64,
16    pub shared_mempool_backoff_interval_ms: u64,
17    pub shared_mempool_batch_size: usize,
18    pub shared_mempool_max_concurrent_inbound_syncs: usize,
19    pub shared_mempool_tick_interval_ms: u64,
20    pub system_transaction_timeout_secs: u64,
21    pub system_transaction_gc_interval_ms: u64,
22}
23
24impl Default for MempoolConfig {
25    fn default() -> MempoolConfig {
26        MempoolConfig {
27            shared_mempool_tick_interval_ms: 1000,
28            shared_mempool_backoff_interval_ms: 30_000,
29            shared_mempool_batch_size: 100,
30            shared_mempool_ack_timeout_ms: 5_000,
31            shared_mempool_max_concurrent_inbound_syncs: 2,
32            // Allow for 1s latency with the default 500ms tick.
33            max_broadcasts_per_peer: 2,
34            capacity: 100_000,
35            system_transaction_timeout_secs: 600,
36            system_transaction_gc_interval_ms: 60_000,
37        }
38    }
39}