Skip to content
This repository was archived by the owner on Nov 25, 2024. It is now read-only.

Commit e0aead2

Browse files
authored
Merge pull request #146 from paradigmxyz/matt/add-network-builder
chore: introdcue network builder
2 parents 0d61da3 + 39fcc6b commit e0aead2

File tree

4 files changed

+41
-5
lines changed

4 files changed

+41
-5
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,7 @@ reth-revm = { git = "https://github.com/paradigmxyz/reth.git", rev = "8ba7bc0",
110110
reth-storage-api = { git = "https://github.com/paradigmxyz/reth.git", rev = "8ba7bc0" }
111111
reth-tracing = { git = "https://github.com/paradigmxyz/reth.git", rev = "8ba7bc0" }
112112
reth-transaction-pool = { git = "https://github.com/paradigmxyz/reth.git", rev = "8ba7bc0" }
113+
reth-network = { git = "https://github.com/paradigmxyz/reth.git", rev = "8ba7bc0" }
113114

114115
# rpc
115116
jsonrpsee = "0.24"

crates/node/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ reth-payload-builder.workspace = true
2323
reth-primitives.workspace = true
2424
reth-revm.workspace = true
2525
reth-transaction-pool.workspace = true
26+
reth-network.workspace = true
2627

2728
alloy-primitives.workspace = true
2829

crates/node/src/node.rs

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
//! required for the optimism engine API.
55
66
use crate::evm::AlphaNetEvmConfig;
7+
use reth_network::{NetworkHandle, NetworkManager};
78
use reth_node_api::{FullNodeTypes, NodeTypesWithEngine};
89
use reth_node_builder::{
910
components::{
10-
ComponentsBuilder, ExecutorBuilder, PayloadServiceBuilder, PoolBuilderConfigOverrides,
11+
ComponentsBuilder, ExecutorBuilder, NetworkBuilder, PayloadServiceBuilder,
12+
PoolBuilderConfigOverrides,
1113
},
1214
BuilderContext, Node, NodeTypes,
1315
};
@@ -43,7 +45,7 @@ impl AlphaNetNode {
4345
Node,
4446
OptimismPoolBuilder,
4547
AlphaNetPayloadBuilder,
46-
OptimismNetworkBuilder,
48+
AlphanetNetworkBuilder,
4749
AlphaNetExecutorBuilder,
4850
OptimismConsensusBuilder,
4951
OptimismEngineValidatorBuilder,
@@ -66,10 +68,10 @@ impl AlphaNetNode {
6668
},
6769
})
6870
.payload(AlphaNetPayloadBuilder::new(compute_pending_block))
69-
.network(OptimismNetworkBuilder {
71+
.network(AlphanetNetworkBuilder::new(OptimismNetworkBuilder {
7072
disable_txpool_gossip,
7173
disable_discovery_v4: !discovery_v4,
72-
})
74+
}))
7375
.executor(AlphaNetExecutorBuilder::default())
7476
.consensus(OptimismConsensusBuilder::default())
7577
.engine_validator(OptimismEngineValidatorBuilder::default())
@@ -96,7 +98,7 @@ where
9698
N,
9799
OptimismPoolBuilder,
98100
AlphaNetPayloadBuilder,
99-
OptimismNetworkBuilder,
101+
AlphanetNetworkBuilder,
100102
AlphaNetExecutorBuilder,
101103
OptimismConsensusBuilder,
102104
OptimismEngineValidatorBuilder,
@@ -170,3 +172,34 @@ where
170172
self.inner.spawn(AlphaNetEvmConfig::new(ctx.chain_spec().clone()), ctx, pool)
171173
}
172174
}
175+
176+
/// The default alphanet network builder.
177+
#[derive(Debug, Default, Clone)]
178+
pub struct AlphanetNetworkBuilder {
179+
inner: OptimismNetworkBuilder,
180+
}
181+
182+
impl AlphanetNetworkBuilder {
183+
/// Create a new instance based on the given op builder
184+
pub const fn new(network: OptimismNetworkBuilder) -> Self {
185+
Self { inner: network }
186+
}
187+
}
188+
189+
impl<Node, Pool> NetworkBuilder<Node, Pool> for AlphanetNetworkBuilder
190+
where
191+
Node: FullNodeTypes<Types: NodeTypes<ChainSpec = OpChainSpec>>,
192+
Pool: TransactionPool + Unpin + 'static,
193+
{
194+
async fn build_network(
195+
self,
196+
ctx: &BuilderContext<Node>,
197+
pool: Pool,
198+
) -> eyre::Result<NetworkHandle> {
199+
let network_config = self.inner.network_config(ctx)?;
200+
let network = NetworkManager::builder(network_config).await?;
201+
let handle = ctx.start_network(network, pool);
202+
203+
Ok(handle)
204+
}
205+
}

0 commit comments

Comments
 (0)