blvm_primitives/
config.rs1use serde::{Deserialize, Serialize};
8
9#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
14pub struct NetworkMessageLimits {
15 #[serde(default = "default_max_addr_addresses")]
17 pub max_addr_addresses: usize,
18
19 #[serde(default = "default_max_inv_items")]
21 pub max_inv_items: usize,
22
23 #[serde(default = "default_max_headers")]
25 pub max_headers: usize,
26
27 #[serde(default = "default_max_user_agent_length")]
29 pub max_user_agent_length: usize,
30}
31
32fn default_max_addr_addresses() -> usize {
33 1000
34}
35
36fn default_max_inv_items() -> usize {
37 50000
38}
39
40fn default_max_headers() -> usize {
41 2000
42}
43
44fn default_max_user_agent_length() -> usize {
45 256
46}
47
48impl Default for NetworkMessageLimits {
49 fn default() -> Self {
50 Self {
51 max_addr_addresses: 1000,
52 max_inv_items: 50000,
53 max_headers: 2000,
54 max_user_agent_length: 256,
55 }
56 }
57}
58
59#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
61pub struct BlockValidationConfig {
62 #[serde(default)]
64 pub assume_valid_height: u64,
65
66 #[serde(default)]
68 pub assume_valid_hash: Option<[u8; 32]>,
69
70 #[serde(default)]
72 pub n_minimum_chain_work: u128,
73
74 #[serde(default = "default_median_time_past_headers")]
76 pub median_time_past_headers: usize,
77
78 #[serde(default = "default_true")]
80 pub enable_parallel_validation: bool,
81
82 #[serde(default)]
84 pub coinbase_maturity_override: u64,
85
86 #[serde(default)]
88 pub max_block_sigops_cost_override: u64,
89}
90
91fn default_median_time_past_headers() -> usize {
92 11
93}
94
95fn default_true() -> bool {
96 true
97}
98
99impl Default for BlockValidationConfig {
100 fn default() -> Self {
101 Self {
102 assume_valid_height: 0,
103 assume_valid_hash: None,
104 n_minimum_chain_work: 0,
105 median_time_past_headers: 11,
106 enable_parallel_validation: true,
107 coinbase_maturity_override: 0,
108 max_block_sigops_cost_override: 0,
109 }
110 }
111}