refactor: dedup runtime initializations (#22263)

Co-authored-by: Alexey Shekhirin <github@shekhirin.com>
This commit is contained in:
DaniPopes
2026-02-17 18:35:31 +01:00
committed by GitHub
parent 6ff4f947c8
commit 0ba685386d
72 changed files with 275 additions and 318 deletions

View File

@@ -20,6 +20,7 @@ reth-payload-primitives.workspace = true
reth-primitives.workspace = true
reth-primitives-traits.workspace = true
reth-provider = { workspace = true, features = ["test-utils"] }
reth-tasks.workspace = true
reth-tracing.workspace = true
# alloy

View File

@@ -19,6 +19,7 @@ use reth_network::{
};
use reth_network_api::events::{PeerEvent, SessionInfo};
use reth_provider::noop::NoopProvider;
use reth_tasks::Runtime;
use reth_tracing::{
tracing_subscriber::filter::LevelFilter, LayerInfo, LogFormat, RethTracer, Tracer,
};
@@ -53,7 +54,7 @@ async fn main() {
let bsc_boot_nodes = boot_nodes();
let net_cfg = NetworkConfig::builder(secret_key)
let net_cfg = NetworkConfig::builder(secret_key, Runtime::test())
.boot_nodes(bsc_boot_nodes.clone())
.set_head(head())
.with_pow()

View File

@@ -8,6 +8,7 @@ use reth_network::{
EthNetworkPrimitives, NetworkConfig, NetworkEvent, NetworkEventListenerProvider, NetworkManager,
};
use reth_provider::noop::NoopProvider;
use reth_tasks::Runtime;
use secp256k1::{rand, SecretKey};
use std::{
net::{Ipv4Addr, SocketAddr},
@@ -25,7 +26,7 @@ async fn can_connect() {
let secret_key = SecretKey::new(&mut rand::thread_rng());
let net_cfg = NetworkConfig::<_, EthNetworkPrimitives>::builder(secret_key)
let net_cfg = NetworkConfig::<_, EthNetworkPrimitives>::builder(secret_key, Runtime::test())
.boot_nodes(boot_nodes())
.set_head(head())
.with_pow()

View File

@@ -22,7 +22,7 @@ use reth_ethereum::{
#[tokio::main]
async fn main() -> eyre::Result<()> {
let runtime = Runtime::with_existing_handle(tokio::runtime::Handle::current())?;
let runtime = Runtime::test();
// create node config
let node_config = NodeConfig::test()

View File

@@ -391,7 +391,7 @@ where
async fn main() -> eyre::Result<()> {
let _guard = RethTracer::new().init()?;
let runtime = Runtime::with_existing_handle(tokio::runtime::Handle::current())?;
let runtime = Runtime::test();
// create genesis with canyon at block 2
let spec = ChainSpec::builder()

View File

@@ -121,7 +121,7 @@ pub fn prague_custom() -> &'static Precompiles {
async fn main() -> eyre::Result<()> {
let _guard = RethTracer::new().init()?;
let runtime = Runtime::with_existing_handle(tokio::runtime::Handle::current())?;
let runtime = Runtime::test();
// create a custom chain spec
let spec = ChainSpec::builder()

View File

@@ -22,6 +22,7 @@ use reth_ethereum::{
NetworkConfig, NetworkManager, NetworkProtocols,
},
node::{builder::NodeHandle, EthereumNode},
tasks::Runtime,
};
use subprotocol::{
connection::CustomCommand,
@@ -50,7 +51,7 @@ fn main() -> eyre::Result<()> {
let secret_key = rng_secret_key();
let (tx, mut from_peer1) = mpsc::unbounded_channel();
let custom_rlpx_handler_2 = CustomRlpxProtoHandler { state: ProtocolState { events: tx } };
let net_cfg = NetworkConfig::builder(secret_key)
let net_cfg = NetworkConfig::builder(secret_key, Runtime::test())
.listener_addr(SocketAddr::V4(SocketAddrV4::new(Ipv4Addr::UNSPECIFIED, 0)))
.disable_discovery()
.add_rlpx_sub_protocol(custom_rlpx_handler_2.into_rlpx_sub_protocol())

View File

@@ -24,6 +24,7 @@ use reth_ethereum::{
BlockDownloaderProvider, FetchClient, NetworkConfig, NetworkEventListenerProvider,
NetworkHandle, NetworkInfo, NetworkManager, Peers,
},
tasks::Runtime,
};
#[tokio::main]
@@ -34,7 +35,8 @@ async fn main() -> eyre::Result<()> {
let local_key = rng_secret_key();
// Configure the network
let config = NetworkConfig::builder(local_key).build_with_noop_provider(DEV.clone());
let config =
NetworkConfig::builder(local_key, Runtime::test()).build_with_noop_provider(DEV.clone());
let (requests_tx, mut requests_rx) = tokio::sync::mpsc::channel(1000);
let (transactions_tx, mut transactions_rx) = tokio::sync::mpsc::unbounded_channel();
@@ -107,7 +109,7 @@ async fn main() -> eyre::Result<()> {
/// first peer.
async fn run_peer(handle: NetworkHandle) -> eyre::Result<()> {
// create another peer
let config = NetworkConfig::builder(rng_secret_key())
let config = NetworkConfig::builder(rng_secret_key(), Runtime::test())
// use random ports
.with_unused_ports()
.build_with_noop_provider(DEV.clone());

View File

@@ -16,6 +16,7 @@ use reth_ethereum::{
EthPooledTransaction, Pool, TransactionListenerKind, TransactionPool,
},
provider::test_utils::NoopProvider,
tasks::Runtime,
};
#[tokio::main]
@@ -41,7 +42,7 @@ async fn main() -> eyre::Result<()> {
let local_key = rng_secret_key();
// Configure the network
let config = NetworkConfig::<_, EthNetworkPrimitives>::builder(local_key)
let config = NetworkConfig::<_, EthNetworkPrimitives>::builder(local_key, Runtime::test())
.mainnet_boot_nodes()
.build(client);
let transactions_manager_config = config.transactions_manager_config.clone();

View File

@@ -14,6 +14,7 @@ use reth_ethereum::{
config::rng_secret_key, NetworkConfig, NetworkEventListenerProvider, NetworkManager,
},
provider::test_utils::NoopProvider,
tasks::Runtime,
};
#[tokio::main]
@@ -25,7 +26,8 @@ async fn main() -> eyre::Result<()> {
let local_key = rng_secret_key();
// Configure the network
let config = NetworkConfig::builder(local_key).mainnet_boot_nodes().build(client);
let config =
NetworkConfig::builder(local_key, Runtime::test()).mainnet_boot_nodes().build(client);
// create the network instance
let network = NetworkManager::eth(config).await?;

View File

@@ -14,9 +14,12 @@
use chain_cfg::{boot_nodes, head, polygon_chain_spec};
use reth_discv4::Discv4ConfigBuilder;
use reth_ethereum::network::{
api::events::SessionInfo, config::NetworkMode, NetworkConfig, NetworkEvent,
NetworkEventListenerProvider, NetworkManager,
use reth_ethereum::{
network::{
api::events::SessionInfo, config::NetworkMode, NetworkConfig, NetworkEvent,
NetworkEventListenerProvider, NetworkManager,
},
tasks::Runtime,
};
use reth_tracing::{
tracing::info, tracing_subscriber::filter::LevelFilter, LayerInfo, LogFormat, RethTracer,
@@ -49,7 +52,7 @@ async fn main() {
let local_addr = SocketAddr::new(Ipv4Addr::UNSPECIFIED.into(), 30303);
// The network configuration
let net_cfg = NetworkConfig::builder(secret_key)
let net_cfg = NetworkConfig::builder(secret_key, Runtime::test())
.set_head(head())
.network_mode(NetworkMode::Work)
.listener_addr(local_addr)

View File

@@ -187,7 +187,7 @@ where
async fn main() -> eyre::Result<()> {
let _guard = RethTracer::new().init()?;
let runtime = Runtime::with_existing_handle(tokio::runtime::Handle::current())?;
let runtime = Runtime::test();
// create a custom chain spec
let spec = ChainSpec::builder()

View File

@@ -49,7 +49,7 @@ async fn main() -> eyre::Result<()> {
DatabaseArguments::new(ClientVersion::default()),
)?;
let spec = Arc::new(ChainSpecBuilder::mainnet().build());
let runtime = Runtime::with_existing_handle(tokio::runtime::Handle::current())?;
let runtime = Runtime::test();
let factory = ProviderFactory::<NodeTypesWithDBAdapter<EthereumNode, DatabaseEnv>>::new(
db.clone(),
spec.clone(),