mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
refactor: clean-up discv5 configuration (#9143)
This commit is contained in:
@ -34,7 +34,7 @@ use reth_stages::{
|
||||
};
|
||||
use reth_static_file::StaticFileProducer;
|
||||
use reth_tasks::TaskExecutor;
|
||||
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
|
||||
use std::{path::PathBuf, sync::Arc};
|
||||
use tokio::sync::watch;
|
||||
use tracing::*;
|
||||
|
||||
@ -130,11 +130,6 @@ impl Command {
|
||||
.network
|
||||
.network_config(config, provider_factory.chain_spec(), secret_key, default_peers_path)
|
||||
.with_task_executor(Box::new(task_executor))
|
||||
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
|
||||
.discovery_addr(SocketAddr::new(
|
||||
self.network.discovery.addr,
|
||||
self.network.discovery.port,
|
||||
))
|
||||
.build(provider_factory)
|
||||
.start_network()
|
||||
.await?;
|
||||
|
||||
@ -26,7 +26,7 @@ use reth_revm::database::StateProviderDatabase;
|
||||
use reth_stages::StageId;
|
||||
use reth_tasks::TaskExecutor;
|
||||
use reth_trie::{updates::TrieKey, StateRoot};
|
||||
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
|
||||
use std::{path::PathBuf, sync::Arc};
|
||||
use tracing::*;
|
||||
|
||||
/// `reth debug in-memory-merkle` command
|
||||
@ -64,11 +64,6 @@ impl Command {
|
||||
.network
|
||||
.network_config(config, provider_factory.chain_spec(), secret_key, default_peers_path)
|
||||
.with_task_executor(Box::new(task_executor))
|
||||
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
|
||||
.discovery_addr(SocketAddr::new(
|
||||
self.network.discovery.addr,
|
||||
self.network.discovery.port,
|
||||
))
|
||||
.build(provider_factory)
|
||||
.start_network()
|
||||
.await?;
|
||||
|
||||
@ -30,7 +30,7 @@ use reth_stages::{
|
||||
ExecInput, Stage, StageCheckpoint,
|
||||
};
|
||||
use reth_tasks::TaskExecutor;
|
||||
use std::{net::SocketAddr, path::PathBuf, sync::Arc};
|
||||
use std::{path::PathBuf, sync::Arc};
|
||||
use tracing::*;
|
||||
|
||||
/// `reth debug merkle` command
|
||||
@ -69,11 +69,6 @@ impl Command {
|
||||
.network
|
||||
.network_config(config, provider_factory.chain_spec(), secret_key, default_peers_path)
|
||||
.with_task_executor(Box::new(task_executor))
|
||||
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
|
||||
.discovery_addr(SocketAddr::new(
|
||||
self.network.discovery.addr,
|
||||
self.network.discovery.port,
|
||||
))
|
||||
.build(provider_factory)
|
||||
.start_network()
|
||||
.await?;
|
||||
|
||||
@ -27,7 +27,7 @@ use reth_stages::Pipeline;
|
||||
use reth_static_file::StaticFileProducer;
|
||||
use reth_tasks::TaskExecutor;
|
||||
use reth_transaction_pool::noop::NoopTransactionPool;
|
||||
use std::{net::SocketAddr, path::PathBuf, sync::Arc, time::Duration};
|
||||
use std::{path::PathBuf, sync::Arc, time::Duration};
|
||||
use tokio::sync::oneshot;
|
||||
use tracing::*;
|
||||
|
||||
@ -65,11 +65,6 @@ impl Command {
|
||||
.network
|
||||
.network_config(config, provider_factory.chain_spec(), secret_key, default_peers_path)
|
||||
.with_task_executor(Box::new(task_executor))
|
||||
.listener_addr(SocketAddr::new(self.network.addr, self.network.port))
|
||||
.discovery_addr(SocketAddr::new(
|
||||
self.network.discovery.addr,
|
||||
self.network.discovery.port,
|
||||
))
|
||||
.build(provider_factory)
|
||||
.start_network()
|
||||
.await?;
|
||||
|
||||
@ -4,13 +4,12 @@ use crate::{
|
||||
args::{
|
||||
get_secret_key,
|
||||
utils::{chain_help, chain_value_parser, hash_or_num_value_parser, SUPPORTED_CHAINS},
|
||||
DatabaseArgs, DiscoveryArgs, NetworkArgs,
|
||||
DatabaseArgs, NetworkArgs,
|
||||
},
|
||||
utils::get_single_header,
|
||||
};
|
||||
use backon::{ConstantBuilder, Retryable};
|
||||
use clap::{Parser, Subcommand};
|
||||
use discv5::ListenConfig;
|
||||
use reth_chainspec::ChainSpec;
|
||||
use reth_config::Config;
|
||||
use reth_db::create_db;
|
||||
@ -19,11 +18,7 @@ use reth_network_p2p::bodies::client::BodiesClient;
|
||||
use reth_node_core::args::DatadirArgs;
|
||||
use reth_primitives::BlockHashOrNumber;
|
||||
use reth_provider::{providers::StaticFileProvider, ProviderFactory};
|
||||
use std::{
|
||||
net::{IpAddr, SocketAddrV4, SocketAddrV6},
|
||||
path::PathBuf,
|
||||
sync::Arc,
|
||||
};
|
||||
use std::{path::PathBuf, sync::Arc};
|
||||
|
||||
/// `reth p2p` command
|
||||
#[derive(Debug, Parser)]
|
||||
@ -113,47 +108,7 @@ impl Command {
|
||||
.disable_discv4_discovery_if(self.chain.chain.is_optimism())
|
||||
.boot_nodes(boot_nodes.clone())
|
||||
.apply(|builder| {
|
||||
self.network
|
||||
.discovery
|
||||
.apply_to_builder(builder, rlpx_socket)
|
||||
.map_discv5_config_builder(|builder| {
|
||||
let DiscoveryArgs {
|
||||
discv5_addr,
|
||||
discv5_addr_ipv6,
|
||||
discv5_port,
|
||||
discv5_port_ipv6,
|
||||
discv5_lookup_interval,
|
||||
discv5_bootstrap_lookup_interval,
|
||||
discv5_bootstrap_lookup_countdown,
|
||||
..
|
||||
} = self.network.discovery;
|
||||
|
||||
// Use rlpx address if none given
|
||||
let discv5_addr_ipv4 = discv5_addr.or(match self.network.addr {
|
||||
IpAddr::V4(ip) => Some(ip),
|
||||
IpAddr::V6(_) => None,
|
||||
});
|
||||
let discv5_addr_ipv6 = discv5_addr_ipv6.or(match self.network.addr {
|
||||
IpAddr::V4(_) => None,
|
||||
IpAddr::V6(ip) => Some(ip),
|
||||
});
|
||||
|
||||
builder
|
||||
.discv5_config(
|
||||
discv5::ConfigBuilder::new(ListenConfig::from_two_sockets(
|
||||
discv5_addr_ipv4
|
||||
.map(|addr| SocketAddrV4::new(addr, discv5_port)),
|
||||
discv5_addr_ipv6.map(|addr| {
|
||||
SocketAddrV6::new(addr, discv5_port_ipv6, 0, 0)
|
||||
}),
|
||||
))
|
||||
.build(),
|
||||
)
|
||||
.add_unsigned_boot_nodes(boot_nodes.into_iter())
|
||||
.lookup_interval(discv5_lookup_interval)
|
||||
.bootstrap_lookup_interval(discv5_bootstrap_lookup_interval)
|
||||
.bootstrap_lookup_countdown(discv5_bootstrap_lookup_countdown)
|
||||
})
|
||||
self.network.discovery.apply_to_builder(builder, rlpx_socket, boot_nodes)
|
||||
})
|
||||
.build(Arc::new(ProviderFactory::new(
|
||||
noop_db,
|
||||
|
||||
Reference in New Issue
Block a user