From 5e373b530451b755b4cefd1c50a76290823bad44 Mon Sep 17 00:00:00 2001 From: SChernykh Date: Sun, 22 Jan 2023 09:28:23 +0100 Subject: [PATCH] Miner: count failed shares --- src/miner.cpp | 22 ++++++++++++++++++---- src/miner.h | 1 + 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/miner.cpp b/src/miner.cpp index 7395550..27a575b 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -83,10 +83,19 @@ void Miner::print_status() const double dt = static_cast(duration_cast(high_resolution_clock::now() - m_nonceTimestamp).count()) / 1e9; const uint64_t hr = (dt > 0.0) ? static_cast(hash_count / dt) : 0; + char shares_failed_buf[64] = {}; + log::Stream s(shares_failed_buf); + + const uint32_t shares_found = m_sharesFound; + const uint32_t shares_failed = m_sharesFailed; + if (shares_failed) { + s << log::Yellow() << "\nShares failed = " << shares_failed << log::NoColor(); + } + LOGINFO(0, "status" << - "\nThreads = " << m_threads << - "\nHashrate = " << log::Hashrate(hr) << - "\nShares found = " << m_sharesFound.load() + "\nThreads = " << m_threads << + "\nHashrate = " << log::Hashrate(hr) << + "\nShares found = " << shares_found << static_cast(shares_failed_buf) ); } @@ -222,7 +231,12 @@ void Miner::run(WorkerData* data) if (j.m_sidechainDiff.check_pow(h)) { LOGINFO(0, log::Green() << "SHARE FOUND: mainchain height " << j.m_height << ", sidechain height " << j.m_sidechainHeight << ", diff " << j.m_sidechainDiff << ", worker thread " << data->m_index << '/' << data->m_count); ++m_sharesFound; - m_pool->submit_sidechain_block(j.m_templateId, j.m_nonce, j.m_extraNonce); + if (!m_pool->submit_sidechain_block(j.m_templateId, j.m_nonce, j.m_extraNonce)) { + if (m_sharesFound > 0) { + --m_sharesFound; + } + ++m_sharesFailed; + } } std::this_thread::yield(); diff --git a/src/miner.h b/src/miner.h index 700c9dc..57a0b6f 100644 --- a/src/miner.h +++ b/src/miner.h @@ -61,6 +61,7 @@ private: std::atomic m_totalHashes; std::atomic m_sharesFound; + std::atomic m_sharesFailed; struct Job {