diff options
| author | Javier Smooth <iamjaviersmooth@gmail.com> | 2015-11-05 01:58:47 -0800 |
|---|---|---|
| committer | Javier Smooth <iamjaviersmooth@gmail.com> | 2015-11-13 00:30:45 -0800 |
| commit | 4fea1a5fe7de41ebf0fb40be856d8a3f1775e7c6 (patch) | |
| tree | b02df52888738745cc68df6674e6886f8d44f970 /src/cryptonote_core/cryptonote_basic_impl.cpp | |
| parent | ea7380aa7f3906be6f319044e6ce1d207d1ae576 (diff) | |
| download | monzero-core-4fea1a5fe7de41ebf0fb40be856d8a3f1775e7c6.tar.gz monzero-core-4fea1a5fe7de41ebf0fb40be856d8a3f1775e7c6.tar.xz monzero-core-4fea1a5fe7de41ebf0fb40be856d8a3f1775e7c6.zip | |
Adjust difficulty target (2 min) and full reward zone (60 kbytes) for block version 2
Diffstat (limited to 'src/cryptonote_core/cryptonote_basic_impl.cpp')
| -rw-r--r-- | src/cryptonote_core/cryptonote_basic_impl.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/cryptonote_core/cryptonote_basic_impl.cpp b/src/cryptonote_core/cryptonote_basic_impl.cpp index bd0b8a304..73e8d8fb9 100644 --- a/src/cryptonote_core/cryptonote_basic_impl.cpp +++ b/src/cryptonote_core/cryptonote_basic_impl.cpp @@ -73,16 +73,23 @@ namespace cryptonote { return CRYPTONOTE_MAX_TX_SIZE; } //----------------------------------------------------------------------------------------------- - bool get_block_reward(size_t median_size, size_t current_block_size, uint64_t already_generated_coins, uint64_t &reward) { - uint64_t base_reward = (MONEY_SUPPLY - already_generated_coins) >> EMISSION_SPEED_FACTOR; - if (base_reward < FINAL_SUBSIDY_PER_MINUTE) + bool get_block_reward(size_t median_size, size_t current_block_size, uint64_t already_generated_coins, uint64_t &reward, uint8_t version) { + static_assert(DIFFICULTY_TARGET%60==0&&DIFFICULTY_TARGET_V1%60==0,"difficulty targets must be a multiple of 60"); + const int target = version < 2 ? DIFFICULTY_TARGET_V1 : DIFFICULTY_TARGET; + const int target_minutes = target / 60; + const int emission_speed_factor = EMISSION_SPEED_FACTOR_PER_MINUTE - (target_minutes-1); + + uint64_t base_reward = (MONEY_SUPPLY - already_generated_coins) >> emission_speed_factor; + if (base_reward < FINAL_SUBSIDY_PER_MINUTE*target_minutes) { - base_reward = FINAL_SUBSIDY_PER_MINUTE; + base_reward = FINAL_SUBSIDY_PER_MINUTE*target_minutes; } + uint64_t full_reward_zone = version < 2 ? CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE_V1 : CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE; + //make it soft - if (median_size < CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE) { - median_size = CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE; + if (median_size < full_reward_zone) { + median_size = full_reward_zone; } if (current_block_size <= median_size) { |
