From 555414cd51418ef73a682d7d67e07355871d74e0 Mon Sep 17 00:00:00 2001 From: SChernykh Date: Thu, 14 Jul 2022 19:29:41 +0200 Subject: [PATCH] SideChain: improved precalculation coverage --- src/side_chain.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/side_chain.cpp b/src/side_chain.cpp index 916d5e2..dc60c27 100644 --- a/src/side_chain.cpp +++ b/src/side_chain.cpp @@ -1936,11 +1936,17 @@ void SideChain::launch_precalc(const PoolBlock* block) return; } - auto it = m_blocksByHeight.find(block->m_sidechainHeight + m_chainWindowSize - 1); - if ((it != m_blocksByHeight.end()) && !it->second.empty()) { + for (int h = UNCLE_BLOCK_DEPTH - 1; h >= 0; --h) { + auto it = m_blocksByHeight.find(block->m_sidechainHeight + m_chainWindowSize + h - 1); + if (it == m_blocksByHeight.end()) { + continue; + } for (PoolBlock* b : it->second) { + if (b->m_precalculated) { + continue; + } std::vector wallets; - if (!b->m_precalculated && get_wallets(b, wallets)) { + if (get_wallets(b, wallets)) { b->m_precalculated = true; PrecalcJob* job = new PrecalcJob{ b, std::move(wallets) }; {