mirror of
https://github.com/paradigmxyz/reth.git
synced 2026-04-08 03:01:12 -04:00
refactor: move discv5 logic for op to reth-node-optimism (#8690)
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -7459,6 +7459,7 @@ dependencies = [
|
||||
"reth-basic-payload-builder",
|
||||
"reth-beacon-consensus",
|
||||
"reth-db",
|
||||
"reth-discv5",
|
||||
"reth-e2e-test-utils",
|
||||
"reth-evm",
|
||||
"reth-evm-optimism",
|
||||
|
||||
@@ -158,7 +158,7 @@ impl NetworkArgs {
|
||||
)
|
||||
.peer_config(peers_config)
|
||||
.boot_nodes(chain_bootnodes.clone())
|
||||
.chain_spec(chain_spec.clone())
|
||||
.chain_spec(chain_spec)
|
||||
.transactions_manager_config(transactions_manager_config)
|
||||
// Configure node identity
|
||||
.apply(|builder| {
|
||||
@@ -172,13 +172,7 @@ impl NetworkArgs {
|
||||
// apply discovery settings
|
||||
.apply(|builder| {
|
||||
let rlpx_socket = (self.addr, self.port).into();
|
||||
let mut builder = self.discovery.apply_to_builder(builder, rlpx_socket);
|
||||
|
||||
if chain_spec.is_optimism() && !self.discovery.disable_discovery {
|
||||
builder = builder.discovery_v5(reth_discv5::Config::builder(rlpx_socket));
|
||||
}
|
||||
|
||||
builder
|
||||
self.discovery.apply_to_builder(builder, rlpx_socket)
|
||||
})
|
||||
// modify discv5 settings if enabled in previous step
|
||||
.map_discv5_config_builder(|builder| {
|
||||
|
||||
@@ -20,7 +20,9 @@ use reth_db_api::{
|
||||
database_metrics::{DatabaseMetadata, DatabaseMetrics},
|
||||
};
|
||||
use reth_exex::ExExContext;
|
||||
use reth_network::{NetworkBuilder, NetworkConfig, NetworkHandle, NetworkManager};
|
||||
use reth_network::{
|
||||
NetworkBuilder, NetworkConfig, NetworkConfigBuilder, NetworkHandle, NetworkManager,
|
||||
};
|
||||
use reth_node_api::{FullNodeTypes, FullNodeTypesAdapter, NodeTypes};
|
||||
use reth_node_core::{
|
||||
args::{get_secret_key, DatadirArgs},
|
||||
@@ -38,7 +40,6 @@ use secp256k1::SecretKey;
|
||||
pub use states::*;
|
||||
use std::{
|
||||
net::{IpAddr, SocketAddr, SocketAddrV4, SocketAddrV6},
|
||||
path::PathBuf,
|
||||
sync::Arc,
|
||||
};
|
||||
|
||||
@@ -515,9 +516,20 @@ impl<Node: FullNodeTypes> BuilderContext<Node> {
|
||||
|
||||
/// Returns the default network config for the node.
|
||||
pub fn network_config(&self) -> eyre::Result<NetworkConfig<Node::Provider>> {
|
||||
let network_builder = self.network_config_builder();
|
||||
Ok(self.build_network_config(network_builder?))
|
||||
}
|
||||
|
||||
/// Get the [`NetworkConfigBuilder`].
|
||||
pub fn network_config_builder(&self) -> eyre::Result<NetworkConfigBuilder> {
|
||||
let secret_key = self.network_secret(&self.config().datadir())?;
|
||||
let default_peers_path = self.config().datadir().known_peers();
|
||||
Ok(self.build_network_config(secret_key, default_peers_path))
|
||||
Ok(self.config().network.network_config(
|
||||
self.reth_config(),
|
||||
self.config().chain.clone(),
|
||||
secret_key,
|
||||
default_peers_path,
|
||||
))
|
||||
}
|
||||
|
||||
/// Get the network secret from the given data dir
|
||||
@@ -529,19 +541,11 @@ impl<Node: FullNodeTypes> BuilderContext<Node> {
|
||||
}
|
||||
|
||||
/// Builds the [`NetworkConfig`].
|
||||
fn build_network_config(
|
||||
pub fn build_network_config(
|
||||
&self,
|
||||
secret_key: SecretKey,
|
||||
default_peers_path: PathBuf,
|
||||
network_builder: NetworkConfigBuilder,
|
||||
) -> NetworkConfig<Node::Provider> {
|
||||
self.config()
|
||||
.network
|
||||
.network_config(
|
||||
self.reth_config(),
|
||||
self.config().chain.clone(),
|
||||
secret_key,
|
||||
default_peers_path,
|
||||
)
|
||||
network_builder
|
||||
.with_task_executor(Box::new(self.executor.clone()))
|
||||
.set_head(self.head)
|
||||
.listener_addr(SocketAddr::new(
|
||||
@@ -549,7 +553,6 @@ impl<Node: FullNodeTypes> BuilderContext<Node> {
|
||||
// set discovery port based on instance number
|
||||
self.config().network.port + self.config().instance - 1,
|
||||
))
|
||||
.disable_discv4_discovery_if(self.config().chain.chain.is_optimism())
|
||||
.discovery_addr(SocketAddr::new(
|
||||
self.config().network.discovery.addr,
|
||||
// set discovery port based on instance number
|
||||
|
||||
@@ -30,6 +30,7 @@ reth-revm.workspace = true
|
||||
reth-evm-optimism.workspace = true
|
||||
reth-beacon-consensus.workspace = true
|
||||
revm-primitives.workspace = true
|
||||
reth-discv5.workspace = true
|
||||
|
||||
# async
|
||||
async-trait.workspace = true
|
||||
|
||||
@@ -269,7 +269,26 @@ where
|
||||
pool: Pool,
|
||||
) -> eyre::Result<NetworkHandle> {
|
||||
let Self { disable_txpool_gossip } = self;
|
||||
let mut network_config = ctx.network_config()?;
|
||||
|
||||
let args = &ctx.config().network;
|
||||
|
||||
let network_builder = ctx
|
||||
.network_config_builder()?
|
||||
// purposefully disable discv4
|
||||
.disable_discv4_discovery()
|
||||
// apply discovery settings
|
||||
.apply(|builder| {
|
||||
let rlpx_socket = (args.addr, args.port).into();
|
||||
let mut builder = args.discovery.apply_to_builder(builder, rlpx_socket);
|
||||
|
||||
if !args.discovery.disable_discovery {
|
||||
builder = builder.discovery_v5(reth_discv5::Config::builder(rlpx_socket));
|
||||
}
|
||||
|
||||
builder
|
||||
});
|
||||
|
||||
let mut network_config = ctx.build_network_config(network_builder);
|
||||
|
||||
// When `sequencer_endpoint` is configured, the node will forward all transactions to a
|
||||
// Sequencer node for execution and inclusion on L1, and disable its own txpool
|
||||
|
||||
Reference in New Issue
Block a user