feat(discv5): config via cli (#7394)

This commit is contained in:
Emilia Hane
2024-04-03 14:27:46 +02:00
committed by GitHub
parent 05c9f61a38
commit 3cafd586cf
12 changed files with 149 additions and 16 deletions

View File

@@ -3,7 +3,10 @@
use crate::version::P2P_CLIENT_VERSION;
use clap::Args;
use reth_config::Config;
use reth_discv4::{DEFAULT_DISCOVERY_ADDR, DEFAULT_DISCOVERY_PORT};
use reth_discv4::{
DEFAULT_DISCOVERY_ADDR, DEFAULT_DISCOVERY_PORT, DEFAULT_DISCOVERY_V5_ADDR,
DEFAULT_DISCOVERY_V5_PORT,
};
use reth_net_nat::NatResolver;
use reth_network::{
transactions::{
@@ -211,13 +214,27 @@ pub struct DiscoveryArgs {
#[arg(long, conflicts_with = "disable_discovery")]
pub disable_discv4_discovery: bool,
/// The UDP address to use for P2P discovery/networking
/// Enable Discv5 discovery.
#[arg(long, conflicts_with = "disable_discovery")]
pub enable_discv5_discovery: bool,
/// The UDP address to use for devp2p peer discovery version 4.
#[arg(id = "discovery.addr", long = "discovery.addr", value_name = "DISCOVERY_ADDR", default_value_t = DEFAULT_DISCOVERY_ADDR)]
pub addr: IpAddr,
/// The UDP port to use for P2P discovery/networking
/// The UDP port to use for devp2p peer discovery version 4.
#[arg(id = "discovery.port", long = "discovery.port", value_name = "DISCOVERY_PORT", default_value_t = DEFAULT_DISCOVERY_PORT)]
pub port: u16,
/// The UDP address to use for devp2p peer discovery version 5.
#[arg(id = "discovery.v5.addr", long = "discovery.v5.addr", value_name = "DISCOVERY_V5_ADDR",
default_value_t = DEFAULT_DISCOVERY_V5_ADDR)]
pub discv5_addr: IpAddr,
/// The UDP port to use for devp2p peer discovery version 5.
#[arg(id = "discovery.v5.port", long = "discovery.v5.port", value_name = "DISCOVERY_V5_PORT",
default_value_t = DEFAULT_DISCOVERY_V5_PORT)]
pub discv5_port: u16,
}
impl DiscoveryArgs {
@@ -233,6 +250,11 @@ impl DiscoveryArgs {
if self.disable_discovery || self.disable_discv4_discovery {
network_config_builder = network_config_builder.disable_discv4_discovery();
}
if !self.disable_discovery && (self.enable_discv5_discovery || cfg!(feature = "optimism")) {
network_config_builder = network_config_builder.enable_discv5_discovery();
}
network_config_builder
}
@@ -250,8 +272,11 @@ impl Default for DiscoveryArgs {
disable_discovery: false,
disable_dns_discovery: false,
disable_discv4_discovery: false,
enable_discv5_discovery: cfg!(feature = "optimism"),
addr: DEFAULT_DISCOVERY_ADDR,
port: DEFAULT_DISCOVERY_PORT,
discv5_addr: DEFAULT_DISCOVERY_V5_ADDR,
discv5_port: DEFAULT_DISCOVERY_V5_PORT,
}
}
}
@@ -315,6 +340,7 @@ mod tests {
);
}
#[cfg(not(feature = "optimism"))]
#[test]
fn network_args_default_sanity_test() {
let default_args = NetworkArgs::default();