Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support IPv6 for NetworkArgs.addr and DiscoveryArgs.addr #7210

Merged
merged 1 commit into from Mar 19, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
12 changes: 4 additions & 8 deletions bin/reth/src/commands/debug_cmd/execution.rs
Expand Up @@ -38,11 +38,7 @@ use reth_stages::{
};
use reth_static_file::StaticFileProducer;
use reth_tasks::TaskExecutor;
use std::{
net::{SocketAddr, SocketAddrV4},
path::PathBuf,
sync::Arc,
};
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
use tokio::sync::watch;
use tracing::*;

Expand Down Expand Up @@ -166,11 +162,11 @@ impl Command {
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
.with_task_executor(Box::new(task_executor))
.listener_addr(SocketAddr::V4(SocketAddrV4::new(self.network.addr, self.network.port)))
.discovery_addr(SocketAddr::V4(SocketAddrV4::new(
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
.discovery_addr(SocketAddr::new(
self.network.discovery.addr,
self.network.discovery.port,
)))
))
.build(ProviderFactory::new(
db,
self.chain.clone(),
Expand Down
12 changes: 4 additions & 8 deletions bin/reth/src/commands/debug_cmd/in_memory_merkle.rs
Expand Up @@ -25,11 +25,7 @@ use reth_provider::{
};
use reth_tasks::TaskExecutor;
use reth_trie::{updates::TrieKey, StateRoot};
use std::{
net::{SocketAddr, SocketAddrV4},
path::PathBuf,
sync::Arc,
};
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
use tracing::*;

/// `reth debug in-memory-merkle` command
Expand Down Expand Up @@ -89,11 +85,11 @@ impl Command {
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
.with_task_executor(Box::new(task_executor))
.listener_addr(SocketAddr::V4(SocketAddrV4::new(self.network.addr, self.network.port)))
.discovery_addr(SocketAddr::V4(SocketAddrV4::new(
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
.discovery_addr(SocketAddr::new(
self.network.discovery.addr,
self.network.discovery.port,
)))
))
.build(ProviderFactory::new(
db,
self.chain.clone(),
Expand Down
12 changes: 4 additions & 8 deletions bin/reth/src/commands/debug_cmd/merkle.rs
Expand Up @@ -33,11 +33,7 @@ use reth_stages::{
ExecInput, Stage,
};
use reth_tasks::TaskExecutor;
use std::{
net::{SocketAddr, SocketAddrV4},
path::PathBuf,
sync::Arc,
};
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
use tracing::{debug, info, warn};

/// `reth merkle-debug` command
Expand Down Expand Up @@ -98,11 +94,11 @@ impl Command {
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
.with_task_executor(Box::new(task_executor))
.listener_addr(SocketAddr::V4(SocketAddrV4::new(self.network.addr, self.network.port)))
.discovery_addr(SocketAddr::V4(SocketAddrV4::new(
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
.discovery_addr(SocketAddr::new(
self.network.discovery.addr,
self.network.discovery.port,
)))
))
.build(ProviderFactory::new(
db,
self.chain.clone(),
Expand Down
13 changes: 4 additions & 9 deletions bin/reth/src/commands/debug_cmd/replay_engine.rs
Expand Up @@ -32,12 +32,7 @@ use reth_stages::Pipeline;
use reth_static_file::StaticFileProducer;
use reth_tasks::TaskExecutor;
use reth_transaction_pool::noop::NoopTransactionPool;
use std::{
net::{SocketAddr, SocketAddrV4},
path::PathBuf,
sync::Arc,
time::Duration,
};
use std::{net::SocketAddr, path::PathBuf, sync::Arc, time::Duration};
use tokio::sync::{mpsc, oneshot};
use tracing::*;

Expand Down Expand Up @@ -97,11 +92,11 @@ impl Command {
.network
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
.with_task_executor(Box::new(task_executor))
.listener_addr(SocketAddr::V4(SocketAddrV4::new(self.network.addr, self.network.port)))
.discovery_addr(SocketAddr::V4(SocketAddrV4::new(
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
.discovery_addr(SocketAddr::new(
self.network.discovery.addr,
self.network.discovery.port,
)))
))
.build(ProviderFactory::new(
db,
self.chain.clone(),
Expand Down
6 changes: 3 additions & 3 deletions bin/reth/src/commands/node/mod.rs
Expand Up @@ -233,7 +233,7 @@ mod tests {
fn parse_discovery_addr() {
let cmd =
NodeCommand::try_parse_args_from(["reth", "--discovery.addr", "127.0.0.1"]).unwrap();
assert_eq!(cmd.network.discovery.addr, Ipv4Addr::LOCALHOST);
assert_eq!(cmd.network.discovery.addr, IpAddr::V4(Ipv4Addr::LOCALHOST));
}

#[test]
Expand All @@ -246,8 +246,8 @@ mod tests {
"127.0.0.1",
])
.unwrap();
assert_eq!(cmd.network.discovery.addr, Ipv4Addr::LOCALHOST);
assert_eq!(cmd.network.addr, Ipv4Addr::LOCALHOST);
assert_eq!(cmd.network.discovery.addr, IpAddr::V4(Ipv4Addr::LOCALHOST));
assert_eq!(cmd.network.addr, IpAddr::V4(Ipv4Addr::LOCALHOST));
}

#[test]
Expand Down
2 changes: 1 addition & 1 deletion crates/net/discv4/src/lib.rs
Expand Up @@ -87,7 +87,7 @@ pub use reth_net_nat::{external_ip, NatResolver};
/// The default address for discv4 via UDP
///
/// Note: the default TCP address is the same.
pub const DEFAULT_DISCOVERY_ADDR: Ipv4Addr = Ipv4Addr::UNSPECIFIED;
pub const DEFAULT_DISCOVERY_ADDR: IpAddr = IpAddr::V4(Ipv4Addr::UNSPECIFIED);

/// The default port for discv4 via UDP
///
Expand Down
6 changes: 3 additions & 3 deletions crates/node-core/src/args/network_args.rs
Expand Up @@ -15,7 +15,7 @@ use reth_network::{
};
use reth_primitives::{mainnet_nodes, ChainSpec, NodeRecord};
use secp256k1::SecretKey;
use std::{net::Ipv4Addr, path::PathBuf, sync::Arc};
use std::{net::IpAddr, path::PathBuf, sync::Arc};

/// Parameters for configuring the network more granularity via CLI
#[derive(Debug, Clone, Args, PartialEq, Eq)]
Expand Down Expand Up @@ -67,7 +67,7 @@ pub struct NetworkArgs {

/// Network listening address
#[arg(long = "addr", value_name = "ADDR", default_value_t = DEFAULT_DISCOVERY_ADDR)]
pub addr: Ipv4Addr,
pub addr: IpAddr,

/// Network listening port
#[arg(long = "port", value_name = "PORT", default_value_t = DEFAULT_DISCOVERY_PORT)]
Expand Down Expand Up @@ -213,7 +213,7 @@ pub struct DiscoveryArgs {

/// The UDP address to use for P2P discovery/networking
#[arg(id = "discovery.addr", long = "discovery.addr", value_name = "DISCOVERY_ADDR", default_value_t = DEFAULT_DISCOVERY_ADDR)]
pub addr: Ipv4Addr,
pub addr: IpAddr,

/// The UDP port to use for P2P discovery/networking
#[arg(id = "discovery.port", long = "discovery.port", value_name = "DISCOVERY_PORT", default_value_t = DEFAULT_DISCOVERY_PORT)]
Expand Down
14 changes: 5 additions & 9 deletions crates/node-core/src/node_config.rs
Expand Up @@ -72,11 +72,7 @@ use reth_transaction_pool::{
EthTransactionPool, TransactionPool, TransactionValidationTaskExecutor,
};
use secp256k1::SecretKey;
use std::{
net::{SocketAddr, SocketAddrV4},
path::PathBuf,
sync::Arc,
};
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
use tokio::sync::{
mpsc::{Receiver, UnboundedSender},
watch,
Expand Down Expand Up @@ -779,16 +775,16 @@ impl NodeConfig {
.network_config(config, self.chain.clone(), secret_key, default_peers_path)
.with_task_executor(Box::new(executor))
.set_head(head)
.listener_addr(SocketAddr::V4(SocketAddrV4::new(
.listener_addr(SocketAddr::new(
self.network.addr,
// set discovery port based on instance number
self.network.port + self.instance - 1,
)))
.discovery_addr(SocketAddr::V4(SocketAddrV4::new(
))
.discovery_addr(SocketAddr::new(
self.network.discovery.addr,
// set discovery port based on instance number
self.network.discovery.port + self.instance - 1,
)));
));

cfg_builder.build(client)
}
Expand Down