diff --git a/src/cryptonote_basic/cryptonote_basic_impl.cpp b/src/cryptonote_basic/cryptonote_basic_impl.cpp index 0950d6ea0..1d00a5888 100644 --- a/src/cryptonote_basic/cryptonote_basic_impl.cpp +++ b/src/cryptonote_basic/cryptonote_basic_impl.cpp @@ -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 @@ -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; } @@ -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; } diff --git a/src/cryptonote_config.h b/src/cryptonote_config.h index 302882634..e33e35635 100644 --- a/src/cryptonote_config.h +++ b/src/cryptonote_config.h @@ -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) @@ -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 @@ -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"; @@ -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; diff --git a/src/cryptonote_core/blockchain.cpp b/src/cryptonote_core/blockchain.cpp index 14ca67a7c..3c5b4223d 100644 --- a/src/cryptonote_core/blockchain.cpp +++ b/src/cryptonote_core/blockchain.cpp @@ -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 @@ -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;