Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.60 KB | None | 0 0
  1. // Copyright (c) 2011-2016 The Cryptonote developers
  2. // Distributed under the MIT/X11 software license, see the accompanying
  3. // file COPYING or http://www.opensource.org/licenses/mit-license.php.
  4.  
  5. #pragma once
  6.  
  7. #include <cstdint>
  8. #include <initializer_list>
  9.  
  10. namespace CryptoNote {
  11. namespace parameters {
  12.  
  13. const uint64_t CRYPTONOTE_MAX_BLOCK_NUMBER = 500000000;
  14. const size_t CRYPTONOTE_MAX_BLOCK_BLOB_SIZE = 500000000;
  15. const size_t CRYPTONOTE_MAX_TX_SIZE = 1000000000;
  16. //TODO Currency-specific address prefix
  17. const uint64_t CRYPTONOTE_PUBLIC_ADDRESS_BASE58_PREFIX = 0x2b;
  18. //TODO Choose maturity period for your currency
  19. const size_t CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW = 60;
  20. //TODO Choose maturity period for your currency
  21. const size_t CRYPTONOTE_MINED_MONEY_UNLOCK_WINDOW = 60;
  22. const uint64_t CRYPTONOTE_BLOCK_FUTURE_TIME_LIMIT = 60 * 60 * 2;
  23.  
  24. const size_t BLOCKCHAIN_TIMESTAMP_CHECK_WINDOW = 60;
  25.  
  26. //TODO Specify total number of available coins
  27. //TODO ((uint64_t)(-1)) equals to 18446744073709551616 coins
  28. //TODO or you can define number explicitly UINT64_C(858986905600000000)
  29. const uint64_t MONEY_SUPPLY = (uint64_t)(-1);
  30. const unsigned EMISSION_SPEED_FACTOR = 18;
  31. static_assert(EMISSION_SPEED_FACTOR <= 8 * sizeof(uint64_t), "Bad EMISSION");
  32.  
  33. //TODO Define number of blocks for block size median calculation
  34. const size_t CRYPTONOTE_REWARD_BLOCKS_WINDOW = 100;
  35. const size_t CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE = 20000; //size of block (bytes) after whic$
  36. const size_t CRYPTONOTE_COINBASE_BLOB_RESERVED_SIZE = 600;
  37. //TODO Define number of digits
  38. const size_t CRYPTONOTE_DISPLAY_DECIMAL_POINT = 8;
  39. //TODO Define number of digits
  40. const size_t CRYPTONOTE_DISPLAY_DECIMAL_POINT = 8;
  41. //TODO Define minimum fee for transactions
  42. const uint64_t MINIMUM_FEE = 100000;
  43. const uint64_t DEFAULT_DUST_THRESHOLD = MINIMUM_FEE;
  44.  
  45. //TODO Define preferred block's target time
  46. const uint64_t DIFFICULTY_TARGET = 60; // seconds
  47. const uint64_t EXPECTED_NUMBER_OF_BLOCKS_PER_DAY = 24 * 60 * 60 / DIFFICULTY_TARGET;
  48. //TODO There are options to tune CryptoNote's difficulty retargeting function.
  49. //TODO We recommend not to change it.
  50. const size_t DIFFICULTY_WINDOW = EXPECTED_NUMBER_OF_BLOCKS_PER_DAY; // blo$
  51. const size_t DIFFICULTY_CUT = 100; // timestamps to cut after sorting
  52. const size_t DIFFICULTY_LAG = 15;
  53. static_assert(2 * DIFFICULTY_CUT <= DIFFICULTY_WINDOW - 2, "Bad DIFFICULTY_WINDOW or DIFFICULTY_CUT");
  54. const uint64_t MAX_BLOCK_SIZE_GROWTH_SPEED_NUMERATOR = 100 * 1024;
  55. const uint64_t MAX_BLOCK_SIZE_GROWTH_SPEED_DENOMINATOR = 365 * 24 * 60 * 60 / DIFFICULTY_TARGET;
  56.  
  57. const uint64_t CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_BLOCKS = 1;
  58. const uint64_t CRYPTONOTE_LOCKED_TX_ALLOWED_DELTA_SECONDS = DIFFICULTY_TARGET * CRYPTONOTE_LOCKED_TX_$
  59.  
  60. const uint64_t CRYPTONOTE_MEMPOOL_TX_LIVETIME = 60 * 60 * 24; //seconds, one day
  61. const uint64_t CRYPTONOTE_MEMPOOL_TX_FROM_ALT_BLOCK_LIVETIME = 60 * 60 * 24 * 7; //seconds, one week
  62. const uint64_t CRYPTONOTE_NUMBER_OF_PERIODS_TO_FORGET_TX_DELETED_FROM_POOL = 7; // CRYPTONOTE_NUMBER_OF$
  63.  
  64. const size_t FUSION_TX_MAX_SIZE = CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE$
  65. const size_t FUSION_TX_MIN_INPUT_COUNT = 12;
  66. const size_t FUSION_TX_MIN_IN_OUT_COUNT_RATIO = 4;
  67.  
  68. const char CRYPTONOTE_BLOCKS_FILENAME[] = "blocks.dat";
  69. const char CRYPTONOTE_BLOCKINDEXES_FILENAME[] = "blockindexes.dat";
  70. const char CRYPTONOTE_BLOCKSCACHE_FILENAME[] = "blockscache.dat";
  71. const char CRYPTONOTE_POOLDATA_FILENAME[] = "poolstate.bin";
  72. const char P2P_NET_DATA_FILENAME[] = "p2pstate.bin";
  73.  
  74. const size_t MAX_BLOCK_SIZE_INITIAL = 20 * 1024;
  75. const uint64_t MAX_BLOCK_SIZE_GROWTH_SPEED_NUMERATOR = 100 * 1024;
  76. const uint64_t MAX_BLOCK_SIZE_GROWTH_SPEED_DENOMINATOR = 365 * 24 * 60 * 60 / DIFFICULTY_TARGET;
  77. const char CRYPTONOTE_POOLDATA_FILENAME[] = "poolstate.bin";
  78. const char P2P_NET_DATA_FILENAME[] = "p2pstate.bin";
  79. const char CRYPTONOTE_BLOCKCHAIN_INDICES_FILENAME[] = "blockchainindices.dat";
  80. const char MINER_CONFIG_FILE_NAME[] = "miner_conf.json";
  81. } // parameters
  82.  
  83. //TODO Put here the name of your currency
  84. const char CRYPTONOTE_NAME[] = "silvioberluscoin";
  85. const char GENESIS_COINBASE_TX_HEX[] = "";
  86.  
  87. const uint8_t CURRENT_TRANSACTION_VERSION = 1;
  88. const uint8_t BLOCK_MAJOR_VERSION_1 = 1;
  89. const uint8_t BLOCK_MINOR_VERSION_0 = 0;
  90.  
  91. const size_t BLOCKS_IDS_SYNCHRONIZING_DEFAULT_COUNT = 10000; //by default, blocks ids count i$
  92. const size_t BLOCKS_SYNCHRONIZING_DEFAULT_COUNT = 200; //by default, blocks count in bl$
  93. const size_t COMMAND_RPC_GET_BLOCKS_FAST_MAX_COUNT = 1000;
  94.  
  95. //TODO This port will be used by the daemon to establish connections with p2p network
  96.  
  97. //TODO This port will be used by the daemon to establish connections with p2p network
  98. const int P2P_DEFAULT_PORT = 17236;
  99. //TODO This port will be used by the daemon to interact with simlewallet
  100. const int RPC_DEFAULT_PORT = 18236;
  101.  
  102. const size_t P2P_LOCAL_WHITE_PEERLIST_LIMIT = 1000;
  103. const size_t P2P_LOCAL_GRAY_PEERLIST_LIMIT = 5000;
  104.  
  105. const size_t P2P_CONNECTION_MAX_WRITE_BUFFER_SIZE = 16 * 1024 * 1024; // 16 MB
  106. const uint32_t P2P_DEFAULT_CONNECTIONS_COUNT = 8;
  107. const size_t P2P_DEFAULT_WHITELIST_CONNECTIONS_PERCENT = 70;
  108. const uint32_t P2P_DEFAULT_HANDSHAKE_INTERVAL = 60; // seconds
  109. const uint32_t P2P_DEFAULT_PACKET_MAX_SIZE = 50000000; // 50000000 bytes maximum $
  110. const uint32_t P2P_DEFAULT_PEERS_IN_HANDSHAKE = 250;
  111. const uint32_t P2P_DEFAULT_CONNECTION_TIMEOUT = 5000; // 5 seconds
  112. const uint32_t P2P_DEFAULT_PING_CONNECTION_TIMEOUT = 2000; // 2 seconds
  113. const uint64_t P2P_DEFAULT_INVOKE_TIMEOUT = 60 * 2 * 1000; // 2 minutes
  114. const size_t P2P_DEFAULT_HANDSHAKE_INVOKE_TIMEOUT = 5000; // 5 seconds
  115. const uint64_t P2P_DEFAULT_INVOKE_TIMEOUT = 60 * 2 * 1000; // 2 minutes
  116. const size_t P2P_DEFAULT_HANDSHAKE_INVOKE_TIMEOUT = 5000; // 5 seconds
  117. const char P2P_STAT_TRUSTED_PUB_KEY[] = "8f80f9a5a434a9f1510d13336228debfee9c918c$
  118.  
  119. //TODO Add here your network seed nodes
  120. const std::initializer_list<const char*> SEED_NODES = {
  121. "193.164.131.236:17236",
  122. "173.212.192.102:17239",
  123. };
  124.  
  125. struct CheckpointData {
  126. uint32_t height;
  127. const char* blockId;
  128. };
  129.  
  130. #ifdef __GNUC__
  131. __attribute__((unused))
  132. #endif
  133.  
  134. // You may add here other checkpoints using the following format:
  135. // {<block height>, "<block hash>"},
  136. const std::initializer_list<CheckpointData> CHECKPOINTS = {
  137. //{ 10000, "84b6345731e2702cdaadc6ce5e5238c4ca5ecf48e3447136b2ed829b8a95f3ad" },
  138. };
  139. } // CryptoNote
  140.  
  141. #define ALLOW_DEBUG_COMMANDS
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement