Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Future emissions adjustment #2

Merged
merged 13 commits into from
Mar 10, 2019
24 changes: 15 additions & 9 deletions src/cryptonote_basic/cryptonote_basic_impl.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@ using namespace epee;
#define MAINNET_HARDFORK_V14_HEIGHT ((uint64_t)(337816)) // MAINNET v14 hard fork
#define MAINNET_HARDFORK_V15_HEIGHT ((uint64_t)(337838)) // MAINNET v15 hard fork
#define MAINNET_HARDFORK_V16_HEIGHT ((uint64_t)(500060)) // MAINNET v16 hard fork
#define MAINNET_HARDFORK_V17_HEIGHT ((uint64_t)(665500)) // MAINNET v17 hard fork

#define TESTNET_ELECTRONERO_HARDFORK ((uint64_t)(12746)) // Electronero TESTNET fork height
#define TESTNET_HARDFORK_V1_HEIGHT ((uint64_t)(1)) // TESTNET v1
Expand Down Expand Up @@ -132,12 +133,17 @@ namespace cryptonote {
const int emission_speed_factor = EMISSION_SPEED_FACTOR_PER_MINUTE - (target_minutes-1);
const int emission_speed_factor_v2 = EMISSION_SPEED_FACTOR_PER_MINUTE + (target_minutes-1);
const int emission_speed_factor_v3 = EMISSION_SPEED_FACTOR_PER_MINUTE + (target_minutes-2); // v10
uint64_t emission_speed = versionHeight < MAINNET_HARDFORK_V7_HEIGHT ? emission_speed_factor : versionHeight >= MAINNET_HARDFORK_V10_HEIGHT ? emission_speed_factor_v3 : emission_speed_factor_v2;
uint64_t base_reward = (TOKEN_SUPPLY - already_generated_coins) >> emission_speed_factor;

const uint64_t premine = 1260000000000U;
const uint64_t airdrop = premine;
if (height == 1 || height == 307003 || height == 310790) {
const int emission_speed_factor_v4 = EMISSION_SPEED_FACTOR_PER_MINUTE + (target_minutes+3); // v17 - 24 emf
uint64_t emission_speed = (uint64_t)versionHeight < MAINNET_HARDFORK_V7_HEIGHT ? emission_speed_factor : (uint64_t)versionHeight < MAINNET_HARDFORK_V10_HEIGHT ? emission_speed_factor_v2 : (uint64_t)versionHeight < MAINNET_HARDFORK_V17_HEIGHT ? emission_speed_factor_v3 : emission_speed_factor_v4;
uint64_t base_reward = (TOKEN_SUPPLY - already_generated_coins) >> emission_speed;

const uint64_t ETN_premine = 1260000000000U;
if (height == 1) {
reward = ETN_premine;
return true;
}
const uint64_t airdrop = ETN_premine;
if (height == 307003 || height == 310790) {
reward = airdrop;
return true;
}
Expand All @@ -164,9 +170,9 @@ namespace cryptonote {
base_reward = (TOKEN_SUPPLY - already_generated_coins) >> emission_speed;
}

// maybe work on better final subsidy later
const uint64_t FINITE_SUBSIDY = 66600U;
if (base_reward < FINITE_SUBSIDY){
// maybe work on better final subsidy later
const uint64_t FINAL_SUBSIDY_ACTIVATOR = 66600U;
if (base_reward < FINAL_SUBSIDY_ACTIVATOR){
if (already_generated_coins >= TOKEN_SUPPLY){
base_reward = FINAL_SUBSIDY_PER_MINUTE;
}
Expand Down
8 changes: 4 additions & 4 deletions src/cryptonote_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@

#define FEE_PER_KB_OLD ((uint64_t)10) // .1 * pow(10, 1)
#define FEE_PER_KB_V2 ((uint64_t)40) // .4 * pow(10, 1)
#define FEE_PER_KB ((uint64_t)5000) // 50 * pow(10, 2)
#define FEE_PER_KB ((uint64_t)10) // 0.1 * pow(10, 2)
#define DYNAMIC_FEE_PER_KB_BASE_FEE ((uint64_t)2500) // .1 * pow(10, 1)
#define DYNAMIC_FEE_PER_KB_BASE_BLOCK_REWARD ((uint64_t)2500) // .10 * pow(10, 1)
#define DYNAMIC_FEE_PER_KB_BASE_FEE_V5 ((uint64_t)2500 * (uint64_t)CRYPTONOTE_TX_FEE_RESERVED_SIZE / CRYPTONOTE_BLOCK_FEE_REWARD_ZONE_V5)
Expand Down Expand Up @@ -165,7 +165,7 @@
#define HF_VERSION_MIN_MIXIN_6 8


#define CRYPTONOTE_RINGDB_DIR ".shared-pulse-ringdb" // shared-ringdb"
#define CRYPTONOTE_RINGDB_DIR ".pulse-shared-ringdb" // shared-ringdb"

#define MIN_MIXIN 1 // minimum mixin allowed
#define MAX_MIXIN 100 // maximum mixin allowed
Expand All @@ -181,7 +181,7 @@ namespace config
{
uint64_t const DEFAULT_FEE_ATOMIC_XMR_PER_KB = 5;
uint8_t const FEE_CALCULATION_MAX_RETRIES = 10;
uint64_t const DEFAULT_DUST_THRESHOLD = ((uint64_t)5000); // .20
uint64_t const DEFAULT_DUST_THRESHOLD = ((uint64_t)10); // .10
uint64_t const BASE_REWARD_CLAMP_THRESHOLD = ((uint64_t)100000000); // pow(10, 8)
std::string const P2P_REMOTE_DEBUG_TRUSTED_PUB_KEY = "0000000000000000000000000000000000000000000000000000000000000000";

Expand All @@ -192,7 +192,7 @@ namespace config
uint16_t const RPC_DEFAULT_PORT = 20393;
uint16_t const ZMQ_RPC_DEFAULT_PORT = 20391;
boost::uuids::uuid const NETWORK_ID = { {
0x39, 0x2C, 0xF3 ,0xF3, 0xF3, 0xEA, 0x5D, 0x85, 0xF3 , 0xD1, 0xC8, 0xF3, 0xF3, 0xE3, 0xD1, 0x2C
0x3C, 0x3C, 0xF6, 0xF3 ,0xF6, 0xE9, 0xF6, 0xF8, 0xD1, 0xEA, 0x6D, 0x39, 0xF3 , 0xD3, 0xC3, 0x39
} }; // Bender's nightmare
std::string const GENESIS_TX = "011201ff00011e026bc5c7db8a664f652d78adb587ac4d759c6757258b64ef9cba3c0354e64fb2e42101abca6a39c561d0897be183eb0143990eba201aa7d2c652ab0555d28bb4b70728";
uint32_t const GENESIS_NONCE = 10000;
Expand Down
5 changes: 4 additions & 1 deletion src/cryptonote_core/blockchain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,7 @@
#define MAINNET_HARDFORK_V14_HEIGHT ((uint64_t)(337816)) // MAINNET v14 hard fork
#define MAINNET_HARDFORK_V15_HEIGHT ((uint64_t)(337838)) // MAINNET v15 hard fork test
#define MAINNET_HARDFORK_V16_HEIGHT ((uint64_t)(500060)) // MAINNET v16 hard fork
#define MAINNET_HARDFORK_V17_HEIGHT ((uint64_t)(665500)) // MAINNET v17 hard fork

#define TESTNET_ELECTRONERO_HARDFORK ((uint64_t)(12746)) // Electronero TESTNET fork height
#define TESTNET_HARDFORK_V1_HEIGHT ((uint64_t)(1)) // TESTNET v1
Expand Down Expand Up @@ -157,7 +158,9 @@ static const struct {
// Version 15
{ 15, MAINNET_HARDFORK_V15_HEIGHT, 0, 1531327124 },
// Version 16
{ 16, MAINNET_HARDFORK_V16_HEIGHT, 0, 1541894592 }
{ 16, MAINNET_HARDFORK_V16_HEIGHT, 0, 1541894592 },
// Version 17
{ 17, MAINNET_HARDFORK_V17_HEIGHT, 0, 1551826958 }

};
static const uint64_t mainnet_hard_fork_version_1_till = MAINNET_HARDFORK_V7_HEIGHT-1;
Expand Down