1 \feffnamespace Novacoin
4 /// Basic network params.
9 /// Minimal depth for spending coinbase and coinstake transactions.
11 public const int nGeneratedMaturity = 500;
14 /// "standard" scrypt target limit for proof of work, results with 0,000244140625 proof-of-work difficulty
16 public static uint256 nProofOfWorkLimit = ~(new uint256(0)) >> 20;
19 /// Proof of stake target limit from block #15000 and until 20 June 2013, results with 0,00390625 proof of stake difficulty
21 public static uint256 nProofOfStakeLegacyLimit = ~(new uint256(0)) >> 24;
24 /// Proof of stake target limit since 20 June 2013, equal to 0.03125 proof of stake difficulty
26 public static uint256 nProofOfStakeLimit = ~(new uint256(0)) >> 27;
29 /// Disabled temporarily, will be used in the future to fix minimal proof of stake difficulty at 0.25
31 public static uint256 nProofOfStakeHardLimit = ~(new uint256(0)) >> 30;
34 /// Difficulty-1 target
36 public static uint256 nPoWBase = new uint256("00000000ffff0000000000000000000000000000000000000000000000000000");
39 /// Fri, 20 Sep 2013 00:00:00 GMT
41 public const uint nChainChecksSwitchTime = 1379635200;
44 /// Sat, 20 Jul 2013 00:00:00 GMT
46 public const uint nTargetsSwitchTime = 1374278400;
49 /// Wed, 20 Aug 2014 00:00:00 GMT
51 public const uint nStakeValidationSwitchTime = 1408492800;
54 /// Thu, 20 Jun 2013 00:00:00 GMT
56 public const uint nDynamicStakeRewardTime = 1371686400;
59 /// Sun, 20 Oct 2013 00:00:00 GMT
61 public const uint nStakeCurveSwitchTime = 1382227200;
66 public static uint256 nHashGenesisBlock = new uint256("00000a060336cbb72fe969666d337b87198b1add2abaa59cca226820b32933a4");
68 public const uint nLockTimeThreshold = 500000000;
71 /// Allowed clock drift.
73 private const uint nDrift = 7200;
76 /// Maximum possible proof-of-work reward.
78 public const ulong nMaxMintProofOfWork = CTransaction.nCoin * 100;
81 /// Maximum possible proof-of-stake reward per coin*year.
83 public const ulong nMaxMintProofOfStake = CTransaction.nCoin * 100;
85 public static uint GetAdjustedTime()
87 return Interop.GetTime();
90 public static uint FutureDrift(uint nTime)
92 return nTime + nDrift; // up to 2 hours from the future
95 public static uint PastDrift(uint nTime)
97 return nTime - nDrift; // up to 2 hours from the past
100 internal static uint256 GetProofOfStakeLimit(uint nHeight, uint nTime)
102 if (nTime > nTargetsSwitchTime) // 27 bits since 20 July 2013
103 return nProofOfStakeLimit;
104 if (nHeight + 1 > 15000) // 24 bits since block 15000
105 return nProofOfStakeLegacyLimit;
106 if (nHeight + 1 > 14060) // 31 bits since block 14060 until 15000
107 return nProofOfStakeHardLimit;
109 return nProofOfWorkLimit; // return bnProofOfWorkLimit of none matched