Skip to content

Commit d2c476c

Browse files
committed
Merge remote-tracking branch 'origin/main' into alexey/receipts-log-filter
2 parents 4d22770 + e810df9 commit d2c476c

File tree

106 files changed

+1093
-454
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+1093
-454
lines changed

Cargo.lock

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

crates/cli/commands/src/stage/drop.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ impl<C: ChainSpecParser> Command<C> {
7070
StageEnum::Headers => {
7171
tx.clear::<tables::CanonicalHeaders>()?;
7272
tx.clear::<tables::Headers<HeaderTy<N>>>()?;
73-
tx.clear::<tables::HeaderTerminalDifficulties>()?;
7473
tx.clear::<tables::HeaderNumbers>()?;
7574
reset_stage_checkpoint(tx, StageId::Headers)?;
7675

crates/cli/commands/src/stage/dump/execution.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -69,13 +69,6 @@ fn import_tables_with_range<N: NodeTypesWithDB>(
6969
to,
7070
)
7171
})??;
72-
output_db.update(|tx| {
73-
tx.import_table_with_range::<tables::HeaderTerminalDifficulties, _>(
74-
&db_tool.provider_factory.db_ref().tx()?,
75-
Some(from),
76-
to,
77-
)
78-
})??;
7972
output_db.update(|tx| {
8073
tx.import_table_with_range::<tables::Headers, _>(
8174
&db_tool.provider_factory.db_ref().tx()?,

crates/cli/commands/src/test_vectors/tables.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,6 @@ pub fn generate_vectors(mut tables: Vec<String>) -> Result<()> {
6969

7070
generate!([
7171
(CanonicalHeaders, PER_TABLE, TABLE),
72-
(HeaderTerminalDifficulties, PER_TABLE, TABLE),
7372
(HeaderNumbers, PER_TABLE, TABLE),
7473
(Headers<Header>, PER_TABLE, TABLE),
7574
(BlockBodyIndices, PER_TABLE, TABLE),

crates/e2e-test-utils/src/lib.rs

Lines changed: 18 additions & 123 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,19 @@
11
//! Utilities for end-to-end tests.
22
33
use node::NodeTestContext;
4-
use reth_chainspec::{ChainSpec, EthChainSpec};
4+
use reth_chainspec::ChainSpec;
55
use reth_db::{test_utils::TempDatabase, DatabaseEnv};
66
use reth_engine_local::LocalPayloadAttributesBuilder;
77
use reth_network_api::test_utils::PeersHandleProvider;
88
use reth_node_builder::{
99
components::NodeComponentsBuilder,
1010
rpc::{EngineValidatorAddOn, RethRpcAddOns},
11-
EngineNodeLauncher, FullNodeTypesAdapter, Node, NodeAdapter, NodeBuilder, NodeComponents,
12-
NodeConfig, NodeHandle, NodePrimitives, NodeTypes, NodeTypesWithDBAdapter,
13-
PayloadAttributesBuilder, PayloadTypes,
11+
FullNodeTypesAdapter, Node, NodeAdapter, NodeComponents, NodePrimitives, NodeTypes,
12+
NodeTypesWithDBAdapter, PayloadAttributesBuilder, PayloadTypes,
1413
};
15-
use reth_node_core::args::{DiscoveryArgs, NetworkArgs, RpcServerArgs};
1614
use reth_provider::providers::{BlockchainProvider, NodeTypesForProvider};
17-
use reth_rpc_server_types::RpcModuleSelection;
1815
use reth_tasks::TaskManager;
1916
use std::sync::Arc;
20-
use tracing::{span, Level};
2117
use wallet::Wallet;
2218

2319
/// Wrapper type to create test nodes
@@ -45,6 +41,10 @@ mod rpc;
4541
/// Utilities for creating and writing RLP test data
4642
pub mod test_rlp_utils;
4743

44+
/// Builder for configuring test node setups
45+
mod setup_builder;
46+
pub use setup_builder::E2ETestSetupBuilder;
47+
4848
/// Creates the initial setup with `num_nodes` started and interconnected.
4949
pub async fn setup<N>(
5050
num_nodes: usize,
@@ -53,60 +53,14 @@ pub async fn setup<N>(
5353
attributes_generator: impl Fn(u64) -> <<N as NodeTypes>::Payload as PayloadTypes>::PayloadBuilderAttributes + Send + Sync + Copy + 'static,
5454
) -> eyre::Result<(Vec<NodeHelperType<N>>, TaskManager, Wallet)>
5555
where
56-
N: Default + Node<TmpNodeAdapter<N>> + NodeTypesForProvider,
57-
N::ComponentsBuilder: NodeComponentsBuilder<
58-
TmpNodeAdapter<N>,
59-
Components: NodeComponents<TmpNodeAdapter<N>, Network: PeersHandleProvider>,
60-
>,
61-
N::AddOns: RethRpcAddOns<Adapter<N>> + EngineValidatorAddOn<Adapter<N>>,
56+
N: NodeBuilderHelper,
6257
LocalPayloadAttributesBuilder<N::ChainSpec>:
6358
PayloadAttributesBuilder<<<N as NodeTypes>::Payload as PayloadTypes>::PayloadAttributes>,
6459
{
65-
let tasks = TaskManager::current();
66-
let exec = tasks.executor();
67-
68-
let network_config = NetworkArgs {
69-
discovery: DiscoveryArgs { disable_discovery: true, ..DiscoveryArgs::default() },
70-
..NetworkArgs::default()
71-
};
72-
73-
// Create nodes and peer them
74-
let mut nodes: Vec<NodeTestContext<_, _>> = Vec::with_capacity(num_nodes);
75-
76-
for idx in 0..num_nodes {
77-
let node_config = NodeConfig::new(chain_spec.clone())
78-
.with_network(network_config.clone())
79-
.with_unused_ports()
80-
.with_rpc(RpcServerArgs::default().with_unused_ports().with_http())
81-
.set_dev(is_dev);
82-
83-
let span = span!(Level::INFO, "node", idx);
84-
let _enter = span.enter();
85-
let NodeHandle { node, node_exit_future: _ } = NodeBuilder::new(node_config.clone())
86-
.testing_node(exec.clone())
87-
.node(Default::default())
88-
.launch()
89-
.await?;
90-
91-
let mut node = NodeTestContext::new(node, attributes_generator).await?;
92-
93-
// Connect each node in a chain.
94-
if let Some(previous_node) = nodes.last_mut() {
95-
previous_node.connect(&mut node).await;
96-
}
97-
98-
// Connect last node with the first if there are more than two
99-
if idx + 1 == num_nodes &&
100-
num_nodes > 2 &&
101-
let Some(first_node) = nodes.first_mut()
102-
{
103-
node.connect(first_node).await;
104-
}
105-
106-
nodes.push(node);
107-
}
108-
109-
Ok((nodes, tasks, Wallet::default().with_chain_id(chain_spec.chain().into())))
60+
E2ETestSetupBuilder::new(num_nodes, chain_spec, attributes_generator)
61+
.with_node_config_modifier(move |config| config.set_dev(is_dev))
62+
.build()
63+
.await
11064
}
11165

11266
/// Creates the initial setup with `num_nodes` started and interconnected.
@@ -155,71 +109,12 @@ where
155109
LocalPayloadAttributesBuilder<N::ChainSpec>:
156110
PayloadAttributesBuilder<<N::Payload as PayloadTypes>::PayloadAttributes>,
157111
{
158-
let tasks = TaskManager::current();
159-
let exec = tasks.executor();
160-
161-
let network_config = NetworkArgs {
162-
discovery: DiscoveryArgs { disable_discovery: true, ..DiscoveryArgs::default() },
163-
..NetworkArgs::default()
164-
};
165-
166-
// Create nodes and peer them
167-
let mut nodes: Vec<NodeTestContext<_, _>> = Vec::with_capacity(num_nodes);
168-
169-
for idx in 0..num_nodes {
170-
let node_config = NodeConfig::new(chain_spec.clone())
171-
.with_network(network_config.clone())
172-
.with_unused_ports()
173-
.with_rpc(
174-
RpcServerArgs::default()
175-
.with_unused_ports()
176-
.with_http()
177-
.with_http_api(RpcModuleSelection::All),
178-
)
179-
.set_dev(is_dev);
180-
181-
let span = span!(Level::INFO, "node", idx);
182-
let _enter = span.enter();
183-
let node = N::default();
184-
let NodeHandle { node, node_exit_future: _ } = NodeBuilder::new(node_config.clone())
185-
.testing_node(exec.clone())
186-
.with_types_and_provider::<N, BlockchainProvider<_>>()
187-
.with_components(node.components_builder())
188-
.with_add_ons(node.add_ons())
189-
.launch_with_fn(|builder| {
190-
let launcher = EngineNodeLauncher::new(
191-
builder.task_executor().clone(),
192-
builder.config().datadir(),
193-
tree_config.clone(),
194-
);
195-
builder.launch_with(launcher)
196-
})
197-
.await?;
198-
199-
let mut node = NodeTestContext::new(node, attributes_generator).await?;
200-
201-
let genesis = node.block_hash(0);
202-
node.update_forkchoice(genesis, genesis).await?;
203-
204-
// Connect each node in a chain if requested.
205-
if connect_nodes {
206-
if let Some(previous_node) = nodes.last_mut() {
207-
previous_node.connect(&mut node).await;
208-
}
209-
210-
// Connect last node with the first if there are more than two
211-
if idx + 1 == num_nodes &&
212-
num_nodes > 2 &&
213-
let Some(first_node) = nodes.first_mut()
214-
{
215-
node.connect(first_node).await;
216-
}
217-
}
218-
219-
nodes.push(node);
220-
}
221-
222-
Ok((nodes, tasks, Wallet::default().with_chain_id(chain_spec.chain().into())))
112+
E2ETestSetupBuilder::new(num_nodes, chain_spec, attributes_generator)
113+
.with_tree_config_modifier(move |_| tree_config.clone())
114+
.with_node_config_modifier(move |config| config.set_dev(is_dev))
115+
.with_connect_nodes(connect_nodes)
116+
.build()
117+
.await
223118
}
224119

225120
// Type aliases

0 commit comments

Comments
 (0)