From e1ddb5f69cfe2b330af216a915fe47bdef86f837 Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Mon, 22 Jul 2024 11:52:31 +0200 Subject: [PATCH] feat: update sync state based on chain event (#9695) --- crates/ethereum/node/src/launch.rs | 10 ++++++++-- crates/net/network/src/lib.rs | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/crates/ethereum/node/src/launch.rs b/crates/ethereum/node/src/launch.rs index 75af8b6ea9..53904bdd65 100644 --- a/crates/ethereum/node/src/launch.rs +++ b/crates/ethereum/node/src/launch.rs @@ -8,7 +8,7 @@ use reth_beacon_consensus::{ use reth_ethereum_engine::service::{ChainEvent, EthService}; use reth_ethereum_engine_primitives::EthEngineTypes; use reth_exex::ExExManagerHandle; -use reth_network::NetworkEvents; +use reth_network::{NetworkEvents, NetworkSyncUpdater, SyncState}; use reth_node_api::{FullNodeTypes, NodeAddOns}; use reth_node_builder::{ hooks::NodeHooks, @@ -233,6 +233,7 @@ where .await?; // Run consensus engine to completion + let network_handle = ctx.components().network().clone(); let (tx, rx) = oneshot::channel(); info!(target: "reth::cli", "Starting consensus engine"); ctx.task_executor().spawn_critical_blocking("consensus engine", async move { @@ -245,7 +246,12 @@ where while let Some(event) = eth_service.next().await { debug!(target: "reth::cli", "Event: {event:?}"); match event { - ChainEvent::BackfillSyncFinished | ChainEvent::BackfillSyncStarted => {} + ChainEvent::BackfillSyncFinished => { + network_handle.update_sync_state(SyncState::Idle); + } + ChainEvent::BackfillSyncStarted => { + network_handle.update_sync_state(SyncState::Syncing); + } ChainEvent::FatalError => break, ChainEvent::Handler(ev) => { event_sender.notify(ev); diff --git a/crates/net/network/src/lib.rs b/crates/net/network/src/lib.rs index a22dbd532f..d37319723e 100644 --- a/crates/net/network/src/lib.rs +++ b/crates/net/network/src/lib.rs @@ -149,12 +149,12 @@ pub use session::{ SessionManager, }; -pub use transactions::{FilterAnnouncement, MessageFilter, ValidateTx68}; - pub use flattened_response::FlattenedResponse; pub use manager::DiscoveredEvent; pub use metrics::TxTypesCounter; pub use reth_eth_wire::{DisconnectReason, HelloMessageWithProtocols}; +pub use reth_network_p2p::sync::{NetworkSyncUpdater, SyncState}; pub use reth_network_types::{PeersConfig, SessionsConfig}; pub use session::EthRlpxConnection; pub use swarm::NetworkConnectionState; +pub use transactions::{FilterAnnouncement, MessageFilter, ValidateTx68};