feat(node): CLI argument for sync state idle when backfill is idle (#19429)

This commit is contained in:
Alexey Shekhirin
2025-10-31 14:16:27 +00:00
committed by GitHub
parent 9f4f66dd8e
commit 1f2f1d432f
3 changed files with 20 additions and 0 deletions

View File

@@ -261,12 +261,16 @@ impl EngineNodeLauncher {
let provider = ctx.blockchain_db().clone();
let (exit, rx) = oneshot::channel();
let terminate_after_backfill = ctx.terminate_after_initial_backfill();
let startup_sync_state_idle = ctx.node_config().debug.startup_sync_state_idle;
info!(target: "reth::cli", "Starting consensus engine");
ctx.task_executor().spawn_critical("consensus engine", Box::pin(async move {
if let Some(initial_target) = initial_target {
debug!(target: "reth::cli", %initial_target, "start backfill sync");
// network_handle's sync state is already initialized at Syncing
engine_service.orchestrator_mut().start_backfill_sync(initial_target);
} else if startup_sync_state_idle {
network_handle.update_sync_state(SyncState::Idle);
}
let mut res = Ok(());
@@ -289,6 +293,9 @@ impl EngineNodeLauncher {
debug!(target: "reth::cli", "Terminating after initial backfill");
break
}
if startup_sync_state_idle {
network_handle.update_sync_state(SyncState::Idle);
}
}
ChainEvent::BackfillSyncStarted => {
network_handle.update_sync_state(SyncState::Syncing);