embedded_td/config/
p2p.rs1use time::Duration;
2
3use super::define_build_mode_setter;
4
5#[derive(Debug, Clone)]
6pub struct P2PConfig {
7 pub laddr: String,
9
10 pub external_address: String,
16
17 pub seeds: Vec<String>,
19
20 pub persistent_peers: Vec<String>,
22
23 pub upnp: bool,
25
26 pub local_net: bool,
28
29 pub max_num_inbound_peers: u64,
31
32 pub max_num_outbound_peers: u64,
34
35 pub unconditional_peer_ids: Vec<String>,
37
38 pub persistent_peers_max_dial_period: Duration,
40
41 pub flush_throttle_timeout: Duration,
43
44 pub max_packet_msg_payload_size: u64,
46
47 pub send_rate: u64,
49
50 pub recv_rate: u64,
52
53 pub pex: bool,
55
56 pub seed_mode: bool,
61
62 pub private_peer_ids: Vec<String>,
64
65 pub allow_duplicate_ip: bool,
67
68 pub handshake_timeout: Duration,
70 pub dial_timeout: Duration,
71}
72
73impl Default for P2PConfig {
74 fn default() -> Self {
75 Self {
76 laddr: String::from("tcp://0.0.0.0:26656"),
77 external_address: Default::default(),
78 seeds: Default::default(),
79 persistent_peers: Default::default(),
80 upnp: false,
81 local_net: false,
82 max_num_inbound_peers: 40,
83 max_num_outbound_peers: 10,
84 unconditional_peer_ids: Default::default(),
85 persistent_peers_max_dial_period: Duration::new(0, 0),
86 flush_throttle_timeout: Duration::milliseconds(100),
87 max_packet_msg_payload_size: 1024,
88 send_rate: 5120000,
89 recv_rate: 5120000,
90 pex: true,
91 seed_mode: false,
92 private_peer_ids: Default::default(),
93 allow_duplicate_ip: Default::default(),
94 handshake_timeout: Duration::new(20, 0),
95 dial_timeout: Duration::new(3, 0),
96 }
97 }
98}
99
100impl P2PConfig {
101 define_build_mode_setter!(laddr, str);
102
103 define_build_mode_setter!(external_address, str);
104
105 define_build_mode_setter!(seeds, Vec<String>);
106
107 define_build_mode_setter!(persistent_peers, Vec<String>);
108
109 define_build_mode_setter!(upnp, bool);
110
111 define_build_mode_setter!(local_net, bool);
112
113 define_build_mode_setter!(max_num_inbound_peers, u64);
114
115 define_build_mode_setter!(max_num_outbound_peers, u64);
116
117 define_build_mode_setter!(unconditional_peer_ids, Vec<String>);
118
119 define_build_mode_setter!(persistent_peers_max_dial_period, Duration);
120
121 define_build_mode_setter!(flush_throttle_timeout, Duration);
122
123 define_build_mode_setter!(send_rate, u64);
124
125 define_build_mode_setter!(recv_rate, u64);
126
127 define_build_mode_setter!(pex, bool);
128
129 define_build_mode_setter!(seed_mode, bool);
130
131 define_build_mode_setter!(private_peer_ids, Vec<String>);
132
133 define_build_mode_setter!(allow_duplicate_ip, bool);
134
135 define_build_mode_setter!(handshake_timeout, Duration);
136
137 define_build_mode_setter!(dial_timeout, Duration);
138}