tycho_core/overlay_client/
config.rs1use std::time::Duration;
2
3use serde::{Deserialize, Serialize};
4use tycho_util::serde_helpers;
5
6#[derive(Default, Debug, Clone, Serialize, Deserialize)]
7#[serde(default)]
8#[non_exhaustive]
9pub struct PublicOverlayClientConfig {
10 pub neighbors: NeighborsConfig,
12 pub validators: ValidatorsConfig,
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17#[serde(default)]
18pub struct NeighborsConfig {
19 #[serde(with = "serde_helpers::humantime")]
23 pub update_interval: Duration,
24
25 #[serde(with = "serde_helpers::humantime")]
29 pub ping_interval: Duration,
30
31 #[serde(with = "serde_helpers::humantime")]
35 pub apply_score_interval: Duration,
36
37 #[serde(with = "serde_helpers::humantime")]
41 pub update_metrics_interval: Duration,
42
43 pub keep: usize,
47
48 pub max_ping_tasks: usize,
52
53 #[serde(with = "serde_helpers::humantime")]
57 pub default_roundtrip: Duration,
58
59 #[serde(with = "serde_helpers::humantime")]
63 pub send_timeout: Duration,
64
65 #[serde(with = "serde_helpers::humantime")]
69 pub query_timeout: Duration,
70
71 pub enable_metrics: bool,
75}
76
77impl Default for NeighborsConfig {
78 fn default() -> Self {
79 Self {
80 update_interval: Duration::from_secs(2 * 60),
81 ping_interval: Duration::from_secs(30),
82 apply_score_interval: Duration::from_secs(10),
83 update_metrics_interval: Duration::from_secs(5),
84 keep: 5,
85 max_ping_tasks: 5,
86 default_roundtrip: Duration::from_millis(300),
87 send_timeout: Duration::from_millis(500),
88 query_timeout: Duration::from_secs(1),
89 enable_metrics: true,
90 }
91 }
92}
93
94#[derive(Debug, Clone, Serialize, Deserialize)]
95#[serde(default)]
96pub struct ValidatorsConfig {
97 #[serde(with = "serde_helpers::humantime")]
101 pub ping_interval: Duration,
102
103 #[serde(with = "serde_helpers::humantime")]
107 pub ping_timeout: Duration,
108
109 pub keep: usize,
113
114 pub max_ping_tasks: usize,
118
119 #[serde(with = "serde_helpers::humantime")]
123 pub send_timeout: Duration,
124}
125
126impl Default for ValidatorsConfig {
127 fn default() -> Self {
128 Self {
129 ping_interval: Duration::from_secs(60),
130 ping_timeout: Duration::from_secs(1),
131 keep: 5,
132 max_ping_tasks: 5,
133 send_timeout: Duration::from_millis(500),
134 }
135 }
136}