From 3d7210dbb0ac02166f4bd043c02ad3df730682b9 Mon Sep 17 00:00:00 2001 From: Nazar Mokrynskyi Date: Sun, 4 Feb 2024 12:05:50 +0200 Subject: [PATCH] Remove `farm_during_initial_plotting` workaround, make "farming" message depend on node sync state --- src/backend/farmer.rs | 7 +------ src/frontend/running.rs | 7 ++++++- src/frontend/running/farm.rs | 14 +++++++++++++- 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/backend/farmer.rs b/src/backend/farmer.rs index ffde6ab1..6a7f92fa 100644 --- a/src/backend/farmer.rs +++ b/src/backend/farmer.rs @@ -226,12 +226,7 @@ pub(super) async fn create_farmer(farmer_options: FarmerOptions) -> anyhow::Resu let mut single_disk_farms = Vec::with_capacity(disk_farms.len()); - // TODO: Restore normal value once incentivization starts on 3h - let farm_during_initial_plotting = if false { - false - } else { - should_farm_during_initial_plotting() - }; + let farm_during_initial_plotting = should_farm_during_initial_plotting(); let mut plotting_thread_pool_core_indices = thread_pool_core_indices(None, None); let mut replotting_thread_pool_core_indices = { let mut replotting_thread_pool_core_indices = thread_pool_core_indices(None, None); diff --git a/src/frontend/running.rs b/src/frontend/running.rs index 2b3a85eb..d7b2e462 100644 --- a/src/frontend/running.rs +++ b/src/frontend/running.rs @@ -272,7 +272,12 @@ impl RunningView { match node_notification { NodeNotification::SyncStateUpdate(sync_state) => { - self.node_synced = sync_state.is_synced(); + let new_synced = sync_state.is_synced(); + if self.node_synced != new_synced { + self.farms + .broadcast(FarmWidgetInput::NodeSynced(new_synced)); + } + self.node_synced = new_synced; } NodeNotification::BlockImported(imported_block) => { if !self.node_synced { diff --git a/src/frontend/running/farm.rs b/src/frontend/running/farm.rs index a99d4345..bf12bb05 100644 --- a/src/frontend/running/farm.rs +++ b/src/frontend/running/farm.rs @@ -89,6 +89,7 @@ pub(super) enum FarmWidgetInput { }, FarmingNotification(FarmingNotification), PieceCacheSynced(bool), + NodeSynced(bool), } #[derive(Debug)] @@ -101,6 +102,7 @@ pub(super) struct FarmWidget { last_sector_plotted: Option, plotting_state: PlottingState, is_piece_cache_synced: bool, + is_node_synced: bool, farm_during_initial_plotting: bool, sectors_grid: gtk::GridView, sectors: HashMap, @@ -240,10 +242,16 @@ impl FactoryComponent for FarmWidget { match kind { PlottingKind::Initial => { if self.farm_during_initial_plotting { + let farming = if self.is_node_synced { + "farming" + } else { + "not farming" + }; format!( - "Initial plotting {:.2}%{}, farming", + "Initial plotting {:.2}%{}, {}", progress, plotting_speed, + farming ) } else { format!( @@ -333,6 +341,7 @@ impl FactoryComponent for FarmWidget { last_sector_plotted: None, plotting_state: PlottingState::Idle, is_piece_cache_synced: false, + is_node_synced: false, farm_during_initial_plotting: init.farm_during_initial_plotting, sectors_grid, sectors: HashMap::from_iter((SectorIndex::MIN..).zip(sectors)), @@ -427,6 +436,9 @@ impl FarmWidget { FarmWidgetInput::PieceCacheSynced(synced) => { self.is_piece_cache_synced = synced; } + FarmWidgetInput::NodeSynced(synced) => { + self.is_node_synced = synced; + } } }