mirror of
https://codeberg.org/anoncontributorxmr/monero.git
synced 2024-11-23 10:37:37 -07:00
Merge pull request #5414
e9fac29a
unit_tests/long_term_block_weight: some tweaks that seem to make more sense (stoffu)467f4c7e
tests/block_weight: use integer division when computing median (stoffu)815d08dc
tests/block_weight: remove unused MULTIPLIER_SMALL (stoffu)661f1fb8
blockchain: remove unused calc of short_term_constraint (stoffu)
This commit is contained in:
commit
0d2aaac15b
@ -3986,7 +3986,6 @@ bool Blockchain::update_next_cumulative_weight_limit(uint64_t *long_term_effecti
|
||||
new_weights[0] = long_term_block_weight;
|
||||
long_term_median = epee::misc_utils::median(new_weights);
|
||||
m_long_term_effective_median_block_weight = std::max<uint64_t>(CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5, long_term_median);
|
||||
short_term_constraint = m_long_term_effective_median_block_weight + m_long_term_effective_median_block_weight * 2 / 5;
|
||||
|
||||
weights.clear();
|
||||
get_last_n_blocks_weights(weights, CRYPTONOTE_REWARD_BLOCKS_WINDOW);
|
||||
|
@ -9,7 +9,6 @@ import math
|
||||
|
||||
MEDIAN_WINDOW_SMALL = 100 # number of recent blocks for median computation
|
||||
MEDIAN_WINDOW_BIG = 5000
|
||||
MULTIPLIER_SMALL = 1.4 # multipliers for determining weights
|
||||
MULTIPLIER_BIG = 50.0
|
||||
MEDIAN_THRESHOLD = 300*1000 # initial value for median (scaled kB -> B)
|
||||
lcg_seed = 0
|
||||
@ -24,9 +23,9 @@ def get_median(vec):
|
||||
#temp = vec
|
||||
temp = sorted(vec)
|
||||
if len(temp) % 2 == 1:
|
||||
return temp[len(temp)/2]
|
||||
return temp[len(temp)//2]
|
||||
else:
|
||||
return int((temp[len(temp)/2]+temp[len(temp)/2-1])/2)
|
||||
return int((temp[len(temp)//2]+temp[len(temp)//2-1])//2)
|
||||
|
||||
def LCG():
|
||||
global lcg_seed
|
||||
|
@ -198,9 +198,10 @@ TEST(long_term_block_weight, multi_pop)
|
||||
const uint64_t effective_median = bc->get_current_cumulative_block_weight_median();
|
||||
const uint64_t effective_limit = bc->get_current_cumulative_block_weight_limit();
|
||||
|
||||
for (uint64_t h = 0; h < 4; ++h)
|
||||
const uint64_t num_pop = 4;
|
||||
for (uint64_t h = 0; h < num_pop; ++h)
|
||||
{
|
||||
size_t w = h < TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW ? CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5 : bc->get_current_cumulative_block_weight_limit();
|
||||
size_t w = bc->get_current_cumulative_block_weight_limit();
|
||||
uint64_t ltw = bc->get_next_long_term_block_weight(w);
|
||||
bc->get_db().add_block(std::make_pair(cryptonote::block(), ""), w, ltw, h, h, {});
|
||||
ASSERT_TRUE(bc->update_next_cumulative_weight_limit());
|
||||
@ -208,10 +209,8 @@ TEST(long_term_block_weight, multi_pop)
|
||||
|
||||
cryptonote::block b;
|
||||
std::vector<cryptonote::transaction> txs;
|
||||
bc->get_db().pop_block(b, txs);
|
||||
bc->get_db().pop_block(b, txs);
|
||||
bc->get_db().pop_block(b, txs);
|
||||
bc->get_db().pop_block(b, txs);
|
||||
for (uint64_t h = 0; h < num_pop; ++h)
|
||||
bc->get_db().pop_block(b, txs);
|
||||
ASSERT_TRUE(bc->update_next_cumulative_weight_limit());
|
||||
|
||||
ASSERT_EQ(effective_median, bc->get_current_cumulative_block_weight_median());
|
||||
@ -294,9 +293,11 @@ TEST(long_term_block_weight, pop_invariant_random)
|
||||
{
|
||||
PREFIX(10);
|
||||
|
||||
for (uint64_t h = 1; h < TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW - 10; ++h)
|
||||
for (uint64_t h = 1; h < 2 * TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW - 10; ++h)
|
||||
{
|
||||
size_t w = bc->get_db().height() < TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW ? CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5 : bc->get_current_cumulative_block_weight_limit();
|
||||
lcg_seed = bc->get_db().height();
|
||||
uint32_t r = lcg();
|
||||
size_t w = bc->get_db().height() < TEST_LONG_TERM_BLOCK_WEIGHT_WINDOW ? CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V5 : (r % bc->get_current_cumulative_block_weight_limit());
|
||||
uint64_t ltw = bc->get_next_long_term_block_weight(w);
|
||||
bc->get_db().add_block(std::make_pair(cryptonote::block(), ""), w, ltw, h, h, {});
|
||||
ASSERT_TRUE(bc->update_next_cumulative_weight_limit());
|
||||
|
Loading…
Reference in New Issue
Block a user