diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index d012816b7..94a66fb6b 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -3673,10 +3673,12 @@ bool Blockchain::update_next_cumulative_weight_limit(uint64_t *long_term_effecti } else { - const uint64_t nblocks = std::min(m_long_term_block_weights_window, db_height - 1); + uint64_t nblocks = std::min(m_long_term_block_weights_window, db_height); + if (nblocks == db_height) + --nblocks; weights.resize(nblocks); for (uint64_t h = 0; h < nblocks; ++h) - weights[h] = m_db->get_block_long_term_weight(db_height - nblocks + h); + weights[h] = m_db->get_block_long_term_weight(db_height - nblocks + h - 1); new_weights = weights; long_term_median = epee::misc_utils::median(weights); }