use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct NetworkMessageLimits {
#[serde(default = "default_max_addr_addresses")]
pub max_addr_addresses: usize,
#[serde(default = "default_max_inv_items")]
pub max_inv_items: usize,
#[serde(default = "default_max_headers")]
pub max_headers: usize,
#[serde(default = "default_max_user_agent_length")]
pub max_user_agent_length: usize,
}
fn default_max_addr_addresses() -> usize {
1000
}
fn default_max_inv_items() -> usize {
50000
}
fn default_max_headers() -> usize {
2000
}
fn default_max_user_agent_length() -> usize {
256
}
impl Default for NetworkMessageLimits {
fn default() -> Self {
Self {
max_addr_addresses: 1000,
max_inv_items: 50000,
max_headers: 2000,
max_user_agent_length: 256,
}
}
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct BlockValidationConfig {
#[serde(default)]
pub assume_valid_height: u64,
#[serde(default)]
pub assume_valid_hash: Option<[u8; 32]>,
#[serde(default)]
pub n_minimum_chain_work: u128,
#[serde(default = "default_median_time_past_headers")]
pub median_time_past_headers: usize,
#[serde(default = "default_true")]
pub enable_parallel_validation: bool,
#[serde(default)]
pub coinbase_maturity_override: u64,
#[serde(default)]
pub max_block_sigops_cost_override: u64,
}
fn default_median_time_past_headers() -> usize {
11
}
fn default_true() -> bool {
true
}
impl Default for BlockValidationConfig {
fn default() -> Self {
Self {
assume_valid_height: 0,
assume_valid_hash: None,
n_minimum_chain_work: 0,
median_time_past_headers: 11,
enable_parallel_validation: true,
coinbase_maturity_override: 0,
max_block_sigops_cost_override: 0,
}
}
}