mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: remove network setup from config (#8364)
Co-authored-by: DaniPopes <57450786+DaniPopes@users.noreply.github.com>
This commit is contained in:
3
Cargo.lock
generated
3
Cargo.lock
generated
@ -6591,11 +6591,8 @@ version = "0.2.0-beta.7"
|
||||
dependencies = [
|
||||
"confy",
|
||||
"humantime-serde",
|
||||
"reth-discv4",
|
||||
"reth-net-nat",
|
||||
"reth-network",
|
||||
"reth-primitives",
|
||||
"secp256k1 0.28.2",
|
||||
"serde",
|
||||
"tempfile",
|
||||
"toml",
|
||||
|
||||
@ -15,6 +15,7 @@ use discv5::ListenConfig;
|
||||
use reth_config::Config;
|
||||
use reth_db::create_db;
|
||||
use reth_interfaces::p2p::bodies::client::BodiesClient;
|
||||
use reth_network::NetworkConfigBuilder;
|
||||
use reth_primitives::{BlockHashOrNumber, ChainSpec};
|
||||
use reth_provider::ProviderFactory;
|
||||
use std::{
|
||||
@ -112,8 +113,9 @@ impl Command {
|
||||
let rlpx_socket = (self.network.addr, self.network.port).into();
|
||||
let boot_nodes = self.chain.bootnodes().unwrap_or_default();
|
||||
|
||||
let mut network_config_builder = config
|
||||
.network_config(self.network.nat, None, p2p_secret_key)
|
||||
let mut network_config_builder = NetworkConfigBuilder::new(p2p_secret_key)
|
||||
.peer_config(config.peers_config_with_basic_nodes_from_file(None))
|
||||
.external_ip_resolver(self.network.nat)
|
||||
.chain_spec(self.chain.clone())
|
||||
.disable_discv4_discovery_if(self.chain.chain.is_optimism())
|
||||
.boot_nodes(boot_nodes.clone());
|
||||
|
||||
@ -13,17 +13,12 @@ workspace = true
|
||||
[dependencies]
|
||||
# reth
|
||||
reth-network.workspace = true
|
||||
reth-net-nat.workspace = true
|
||||
reth-discv4.workspace = true
|
||||
reth-primitives.workspace = true
|
||||
|
||||
# serde
|
||||
serde.workspace = true
|
||||
humantime-serde.workspace = true
|
||||
|
||||
# crypto
|
||||
secp256k1 = { workspace = true, features = ["global-context", "rand-std", "recovery"] }
|
||||
|
||||
# toml
|
||||
confy.workspace = true
|
||||
|
||||
|
||||
@ -1,9 +1,7 @@
|
||||
//! Configuration files.
|
||||
|
||||
use reth_discv4::Discv4Config;
|
||||
use reth_network::{NetworkConfigBuilder, PeersConfig, SessionsConfig};
|
||||
use reth_network::{PeersConfig, SessionsConfig};
|
||||
use reth_primitives::PruneModes;
|
||||
use secp256k1::SecretKey;
|
||||
use serde::{Deserialize, Deserializer, Serialize};
|
||||
use std::{
|
||||
ffi::OsStr,
|
||||
@ -30,25 +28,17 @@ pub struct Config {
|
||||
}
|
||||
|
||||
impl Config {
|
||||
/// Initializes network config from read data
|
||||
pub fn network_config(
|
||||
/// Returns the [PeersConfig] for the node.
|
||||
///
|
||||
/// If a peers file is provided, the basic nodes from the file are added to the configuration.
|
||||
pub fn peers_config_with_basic_nodes_from_file(
|
||||
&self,
|
||||
nat_resolution_method: reth_net_nat::NatResolver,
|
||||
peers_file: Option<PathBuf>,
|
||||
secret_key: SecretKey,
|
||||
) -> NetworkConfigBuilder {
|
||||
let peer_config = self
|
||||
.peers
|
||||
peers_file: Option<&Path>,
|
||||
) -> PeersConfig {
|
||||
self.peers
|
||||
.clone()
|
||||
.with_basic_nodes_from_file(peers_file)
|
||||
.unwrap_or_else(|_| self.peers.clone());
|
||||
|
||||
let discv4 =
|
||||
Discv4Config::builder().external_ip_resolver(Some(nat_resolution_method)).clone();
|
||||
NetworkConfigBuilder::new(secret_key)
|
||||
.sessions_config(self.sessions.clone())
|
||||
.peer_config(peer_config)
|
||||
.discovery(discv4)
|
||||
.unwrap_or_else(|_| self.peers.clone())
|
||||
}
|
||||
|
||||
/// Save the configuration to toml file.
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
html_favicon_url = "https://avatars0.githubusercontent.com/u/97369466?s=256",
|
||||
issue_tracker_base_url = "https://github.com/paradigmxyz/reth/issues/"
|
||||
)]
|
||||
#![cfg_attr(not(test), warn(unused_crate_dependencies))]
|
||||
#![cfg_attr(docsrs, feature(doc_cfg, doc_auto_cfg))]
|
||||
|
||||
pub mod config;
|
||||
|
||||
@ -8,7 +8,7 @@ use crate::{
|
||||
transactions::TransactionsManagerConfig,
|
||||
NetworkHandle, NetworkManager,
|
||||
};
|
||||
use reth_discv4::{Discv4Config, Discv4ConfigBuilder, DEFAULT_DISCOVERY_ADDRESS};
|
||||
use reth_discv4::{Discv4Config, Discv4ConfigBuilder, NatResolver, DEFAULT_DISCOVERY_ADDRESS};
|
||||
use reth_discv5::NetworkStackId;
|
||||
use reth_dns_discovery::DnsDiscoveryConfig;
|
||||
use reth_eth_wire::{HelloMessage, HelloMessageWithProtocols, Status};
|
||||
@ -314,6 +314,19 @@ impl NetworkConfigBuilder {
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the external ip resolver to use for discovery v4.
|
||||
///
|
||||
/// If no [Discv4ConfigBuilder] is set via [Self::discovery], this will create a new one.
|
||||
///
|
||||
/// This is a convenience function for setting the external ip resolver on the default
|
||||
/// [Discv4Config] config.
|
||||
pub fn external_ip_resolver(mut self, resolver: NatResolver) -> Self {
|
||||
self.discovery_v4_builder
|
||||
.get_or_insert_with(Discv4Config::builder)
|
||||
.external_ip_resolver(Some(resolver));
|
||||
self
|
||||
}
|
||||
|
||||
/// Sets the discv4 config to use.
|
||||
pub fn discovery(mut self, builder: Discv4ConfigBuilder) -> Self {
|
||||
self.discovery_v4_builder = Some(builder);
|
||||
|
||||
@ -145,8 +145,11 @@ impl NetworkArgs {
|
||||
),
|
||||
};
|
||||
// Configure basic network stack
|
||||
let mut network_config_builder = config
|
||||
.network_config(self.nat, self.persistent_peers_file(peers_file), secret_key)
|
||||
let mut network_config_builder = NetworkConfigBuilder::new(secret_key)
|
||||
.peer_config(config.peers_config_with_basic_nodes_from_file(
|
||||
self.persistent_peers_file(peers_file).as_deref(),
|
||||
))
|
||||
.external_ip_resolver(self.nat)
|
||||
.sessions_config(
|
||||
SessionsConfig::default().with_upscaled_event_buffer(peers_config.max_peers()),
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user