各种配置项
出块时间:12 秒
供应总量:2^64-1
到达总量后:0.3 DERO/分钟
确认时间:120 秒
挖矿块成熟时间:60个块
普通交易成熟时间:11个块
最大块大小:1.25M
TPS:理论是 75。包含副块的话,能够 > 100(一天约 7200 主块,4000 副块)
手续费:0.001 DERO/KB
最大输出限制:8
环成员数量限制:5~14
// FieldElement32 represents an element of the field GF(2^255 - 19). An element
// t, entries t[0]...t[9], represents the integer t[0]+2^26 t[1]+2^51 t[2]+2^77
// t[3]+2^102 t[4]+...+2^230 t[9]. Bounds on each t[i] vary depending on
// context.
type FieldElement32 [10]int32
// FieldElement64 represents an element of the field GF(2^255-19). An element t
// represents the integer t[0] + t[1]*2^51 + t[2]*2^102 + t[3]*2^153 +
// t[4]*2^204.
type FieldElement64 [5]uint64
各项配置:
// though testing hash complete successfully with 3 secs block time, however
// consider homeusers/developing countries we will be targetting 9 secs
// later hardforks can make it lower by 1 sec, say every 6 months or so, until the system reaches 3 secs
// by that time, networking,space requirements and cryptonote tx processing requiremtn will probably outgrow homeusers
// since most mining nodes will be running in datacenter, 3 secs blocks c
const BLOCK_TIME = uint64(12)
// we are ignoring leap seconds from calculations
// coin emiision related settings
const COIN_MONEY_SUPPLY = uint64(18446744073709551615) // 2^64-1
const COIN_EMISSION_SPEED_FACTOR = uint64(20)
const COIN_DIFFICULTY_TARGET = uint64(120) // this is a feeder to emission formula
const COIN_FINAL_SUBSIDY_PER_MINUTE = uint64(300000000000) // 0.3 DERO per minute = 157680 per year roughly
const CRYPTONOTE_REWARD_BLOCKS_WINDOW = uint64(100) // last 100 blocks are used to create
const MINER_TX_AMOUNT_UNLOCK = uint64(60) // miner tx will need 60 blocks to mature
const NORMAL_TX_AMOUNT_UNLOCK = uint64(11) // normal transfers will mature at 10th (9 blocks distance) blocks to mature
// these are used to configure mainnet hard fork
const HARDFORK_1_END = int64(1)
//const HARDFORK_1_TOTAL_SUPPLY = uint64(2000000000000000000 ) // this is used to mark total supply
// till 95532 (includind) 4739519967524007940
// 95543 4739807553788105597
// 95549 4739964392976757069
// 95550 4739990536584241377
const MAINNET_HARDFORK_1_TOTAL_SUPPLY = uint64(4739990536584241377)
const TESTNET_HARDFORK_1_TOTAL_SUPPLY = uint64(4319584000000000000)
// this is used to find whether output is locked to height or time
// see input maturity to find how it works
// if locked is less than this, then it is considered locked to height else epoch
const CRYPTONOTE_MAX_BLOCK_NUMBER = uint64(500000000)
const MAX_CHAIN_HEIGHT = uint64(2147483648) // 2^31
// this is also the minimum block size
// no longer used for emission as our block sizes are now fixed
const CRYPTONOTE_BLOCK_GRANTED_FULL_REWARD_ZONE = uint64(300000) // after this block size , reward calculated differently
// max block deviation of 2 seconds is allowed
const CRYPTONOTE_FUTURE_TIME_LIMIT = 2
// 1.25 MB block every 12 secs is equal to roughly 75 TX per second
// if we consider side blocks, TPS increase to > 100 TPS
// we can easily improve TPS by changing few parameters in this file
// the resources compute/network may not be easy for the developing countries
// we need to trade of TPS as per community
const CRYPTONOTE_MAX_BLOCK_SIZE = uint64((1 * 1024 * 1024) + (256*1024 )) // max block size limit
const CRYPTONOTE_MAX_TX_SIZE = 300 * 1024 // max size
const MAX_VOUT = 8 // max payees, 6, 7 is change, 8th will be rejected
const MIN_MIXIN = 5 // >= 5 , 4 mixin will be rejected
const MAX_MIXIN = 14 // <= 13, 14th will rejected
// ATLANTIS FEE calculation constants are here
const FEE_PER_KB = uint64(1000000000) // .001 dero per kb
// mainnet botstraps at 200 MH
//const MAINNET_BOOTSTRAP_DIFFICULTY = uint64(200 * 1000* 1000 * BLOCK_TIME)
const MAINNET_BOOTSTRAP_DIFFICULTY = uint64(200 *1000*1000 * BLOCK_TIME)
const MAINNET_MINIMUM_DIFFICULTY = uint64(1000*1000 * BLOCK_TIME) // 2KH
// testnet bootstraps at 1 MH
//const TESTNET_BOOTSTRAP_DIFFICULTY = uint64(1000*1000*BLOCK_TIME)
const TESTNET_BOOTSTRAP_DIFFICULTY = uint64(800 * BLOCK_TIME) // testnet bootstrap at 800 H/s
const TESTNET_MINIMUM_DIFFICULTY = uint64(800 * BLOCK_TIME) // 800 H
// this single parameter controls lots of various parameters
// within the consensus, it should never go below 7
// if changed responsibly, we can have one second or lower blocks (ignoring chain bloat/size issues)
// gives immense scalability,
// increasing this means, you need to change maturity limits also
const STABLE_LIMIT = int64(8)
// the constants can be found in cryptonote_config.h
// these are still here for previous emission functions, they are not used directly for atlantis
const DYNAMIC_FEE_PER_KB_BASE_FEE_V5 = uint64((2000000000 * 60000) / 300000)
const DYNAMIC_FEE_PER_KB_BASE_BLOCK_REWARD = uint64(1000000000000) // 1 * pow(10,12)
其它:
seed_nodes
updates