From 9b3a011cf2dfddd7c9dd0a8de24fb166d7e32fd1 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Mon, 22 Jul 2024 10:15:05 +0200 Subject: [PATCH] feat: support initial target pipeline sync (#9683) --- crates/ethereum/engine/src/service.rs | 5 +++++ crates/ethereum/node/src/launch.rs | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/crates/ethereum/engine/src/service.rs b/crates/ethereum/engine/src/service.rs index d66ad63f5d..86eecad507 100644 --- a/crates/ethereum/engine/src/service.rs +++ b/crates/ethereum/engine/src/service.rs @@ -92,6 +92,11 @@ where Self { orchestrator: ChainOrchestrator::new(handler, backfill_sync) } } + + /// Returns a mutable reference to the orchestrator. + pub fn orchestrator_mut(&mut self) -> &mut EthServiceType { + &mut self.orchestrator + } } impl Stream for EthService diff --git a/crates/ethereum/node/src/launch.rs b/crates/ethereum/node/src/launch.rs index 143009fce8..75af8b6ea9 100644 --- a/crates/ethereum/node/src/launch.rs +++ b/crates/ethereum/node/src/launch.rs @@ -146,8 +146,7 @@ where let pipeline_events = pipeline.events(); - // TODO: support --debug.tip - let _initial_target = ctx.node_config().debug.tip; + let initial_target = ctx.node_config().debug.tip; let mut pruner_builder = ctx.pruner_builder(); if let Some(exex_manager_handle) = &exex_manager_handle { @@ -237,6 +236,11 @@ where let (tx, rx) = oneshot::channel(); info!(target: "reth::cli", "Starting consensus engine"); ctx.task_executor().spawn_critical_blocking("consensus engine", async move { + if let Some(initial_target) = initial_target { + debug!(target: "reth::cli", %initial_target, "start backfill sync"); + eth_service.orchestrator_mut().start_backfill_sync(initial_target); + } + // advance the chain and handle events while let Some(event) = eth_service.next().await { debug!(target: "reth::cli", "Event: {event:?}");