diff --git a/servers/src/common/stats.rs b/servers/src/common/stats.rs index 02a966889..47befa75b 100644 --- a/servers/src/common/stats.rs +++ b/servers/src/common/stats.rs @@ -80,6 +80,8 @@ pub struct WorkerStats { pub num_rejected: u64, /// number of shares submitted too late pub num_stale: u64, + /// number of valid blocks found + pub num_blocks_found: u64, } /// Struct to return relevant information about the stratum server @@ -209,6 +211,7 @@ impl Default for WorkerStats { num_accepted: 0, num_rejected: 0, num_stale: 0, + num_blocks_found: 0, } } } diff --git a/servers/src/mining/stratumserver.rs b/servers/src/mining/stratumserver.rs index 7a700999f..4db3a1929 100644 --- a/servers/src/mining/stratumserver.rs +++ b/servers/src/mining/stratumserver.rs @@ -512,10 +512,14 @@ impl StratumServer { return Err(serde_json::to_value(e).unwrap()); } share_is_block = true; + worker_stats.num_blocks_found += 1; // Log message to make it obvious we found a block warn!( - "(Server ID: {}) Solution Found for block {} - Yay!!!", - self.id, params.height + "(Server ID: {}) Solution Found for block {} - Yay!!! Worker ID: {}, blocks found: {}, shares: {}", + self.id, params.height, + worker_stats.id, + worker_stats.num_blocks_found, + worker_stats.num_accepted, ); } else { // Do some validation but dont submit diff --git a/src/bin/tui/mining.rs b/src/bin/tui/mining.rs index 74135d3c9..5cf6f1d49 100644 --- a/src/bin/tui/mining.rs +++ b/src/bin/tui/mining.rs @@ -44,6 +44,7 @@ enum StratumWorkerColumn { NumAccepted, NumRejected, NumStale, + NumBlocksFound, } impl StratumWorkerColumn { @@ -56,6 +57,7 @@ impl StratumWorkerColumn { StratumWorkerColumn::NumAccepted => "Num Accepted", StratumWorkerColumn::NumRejected => "Num Rejected", StratumWorkerColumn::NumStale => "Num Stale", + StratumWorkerColumn::NumBlocksFound => "Blocks Found", } } } @@ -79,6 +81,7 @@ impl TableViewItem for WorkerStats { StratumWorkerColumn::NumAccepted => self.num_accepted.to_string(), StratumWorkerColumn::NumRejected => self.num_rejected.to_string(), StratumWorkerColumn::NumStale => self.num_stale.to_string(), + StratumWorkerColumn::NumBlocksFound => self.num_blocks_found.to_string(), } } @@ -94,6 +97,7 @@ impl TableViewItem for WorkerStats { StratumWorkerColumn::NumAccepted => Ordering::Equal, StratumWorkerColumn::NumRejected => Ordering::Equal, StratumWorkerColumn::NumStale => Ordering::Equal, + StratumWorkerColumn::NumBlocksFound => Ordering::Equal, } } } @@ -185,17 +189,15 @@ impl TUIStatusListener for TUIMiningView { }); let table_view = TableView::::new() - .column(StratumWorkerColumn::Id, "Worker ID", |c| { - c.width_percent(10) - }) + .column(StratumWorkerColumn::Id, "Worker ID", |c| c.width_percent(8)) .column(StratumWorkerColumn::IsConnected, "Connected", |c| { - c.width_percent(10) + c.width_percent(8) }) .column(StratumWorkerColumn::LastSeen, "Last Seen", |c| { c.width_percent(16) }) .column(StratumWorkerColumn::PowDifficulty, "Pow Difficulty", |c| { - c.width_percent(14) + c.width_percent(12) }) .column(StratumWorkerColumn::NumAccepted, "Num Accepted", |c| { c.width_percent(10) @@ -205,6 +207,9 @@ impl TUIStatusListener for TUIMiningView { }) .column(StratumWorkerColumn::NumStale, "Num Stale", |c| { c.width_percent(10) + }) + .column(StratumWorkerColumn::NumBlocksFound, "Blocks Found", |c| { + c.width_percent(10) }); let status_view = LinearLayout::new(Orientation::Vertical) @@ -330,18 +335,20 @@ impl TUIStatusListener for TUIMiningView { ); let stratum_stats = stats.stratum_stats.clone(); let stratum_network_hashrate = format!( - "Network Hashrate: {:.*}", + "Network Hashrate: {:.*}", 2, stratum_stats.network_hashrate(stratum_stats.block_height) ); let worker_stats = stratum_stats.worker_stats; let stratum_enabled = format!("Mining server enabled: {}", stratum_stats.is_enabled); let stratum_is_running = format!("Mining server running: {}", stratum_stats.is_running); - let stratum_num_workers = format!("Number of workers: {}", stratum_stats.num_workers); - let stratum_block_height = format!("Solving Block Height: {}", stratum_stats.block_height); - let stratum_network_difficulty = - format!("Network Difficulty: {}", stratum_stats.network_difficulty); - let stratum_edge_bits = format!("Cuckoo Size: {}", stratum_stats.edge_bits); + let stratum_num_workers = format!("Number of workers: {}", stratum_stats.num_workers); + let stratum_block_height = format!("Solving Block Height: {}", stratum_stats.block_height); + let stratum_network_difficulty = format!( + "Network Difficulty: {}", + stratum_stats.network_difficulty + ); + let stratum_edge_bits = format!("Cuckoo Size: {}", stratum_stats.edge_bits); c.call_on_id("stratum_config_status", |t: &mut TextView| { t.set_content(stratum_enabled);