@@ -166,6 +166,10 @@ pub struct FlashblocksArgs {
166166 env = "FLASHBLOCK_NUMBER_CONTRACT_ADDRESS"
167167 ) ]
168168 pub flashblocks_number_contract_address : Option < Address > ,
169+
170+ /// Flashblocks p2p configuration
171+ #[ command( flatten) ]
172+ pub p2p : FlashblocksP2pArgs ,
169173}
170174
171175impl Default for FlashblocksArgs {
@@ -178,6 +182,49 @@ impl Default for FlashblocksArgs {
178182 }
179183}
180184
185+ #[ derive( Debug , Clone , PartialEq , Eq , clap:: Args ) ]
186+ pub struct FlashblocksP2pArgs {
187+ /// Enable libp2p networking for flashblock propagation
188+ #[ arg(
189+ long = "flashblocks.p2p_enabled" ,
190+ env = "FLASHBLOCK_P2P_ENABLED" ,
191+ default_value = "false"
192+ ) ]
193+ pub p2p_enabled : bool ,
194+
195+ /// Port for the flashblocks p2p node
196+ #[ arg(
197+ long = "flashblocks.p2p_port" ,
198+ env = "FLASHBLOCK_P2P_PORT" ,
199+ default_value = "9009"
200+ ) ]
201+ pub p2p_port : u16 ,
202+
203+ /// Path to the file containing a hex-encoded libp2p private key.
204+ /// If the file does not exist, a new key will be generated.
205+ #[ arg(
206+ long = "flashblocks.p2p_private_key_file" ,
207+ env = "FLASHBLOCK_P2P_PRIVATE_KEY_FILE"
208+ ) ]
209+ pub p2p_private_key_file : Option < String > ,
210+
211+ /// Comma-separated list of multiaddrs of known Flashblocks peers
212+ /// Example: "/ip4/104.131.131.82/tcp/4001/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ,/ip4/104.131.131.82/udp/4001/quic-v1/p2p/QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ"
213+ #[ arg(
214+ long = "flashblocks.p2p_known_peers" ,
215+ env = "FLASHBLOCK_P2P_KNOWN_PEERS"
216+ ) ]
217+ pub p2p_known_peers : Option < String > ,
218+
219+ /// Maximum number of peers for the flashblocks p2p node
220+ #[ arg(
221+ long = "flashblocks.p2p_max_peer_count" ,
222+ env = "FLASHBLOCK_P2P_MAX_PEER_COUNT" ,
223+ default_value = "50"
224+ ) ]
225+ pub p2p_max_peer_count : u32 ,
226+ }
227+
181228/// Parameters for telemetry configuration
182229#[ derive( Debug , Clone , Default , PartialEq , Eq , clap:: Args ) ]
183230pub struct TelemetryArgs {
0 commit comments