@@ -192,7 +192,8 @@ class CMainParams : public CChainParams {
192192 consensus.DIP0024Height = 1737792 ; // 0000000000000001342be9c0b75ad40c276beaad91616423c4d9cb101b3db438
193193 consensus.DIP0024QuorumsHeight = 1738698 ; // 000000000000001aa25181e4c466e593992c98f9eb21c69ee757b8bb0af50244
194194 consensus.V19Height = 1899072 ; // 0000000000000015e32e73052d663626327004c81c5c22cb8b42c361015c0eae
195- consensus.MinBIP9WarningHeight = 1899072 + 2016 ; // V19 activation height + miner confirmation window
195+ consensus.V20Height = 1987776 ; // 000000000000001bf41cff06b76780050682ca29e61a91c391893d4745579777
196+ consensus.MinBIP9WarningHeight = 1987776 + 2016 ; // V20 activation height + miner confirmation window
196197 consensus.powLimit = uint256S (" 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ); // ~uint256(0) >> 20
197198 consensus.nPowTargetTimespan = 24 * 60 * 60 ; // Dash: 1 day
198199 consensus.nPowTargetSpacing = 2.5 * 60 ; // Dash: 2.5 minutes
@@ -207,14 +208,6 @@ class CMainParams : public CChainParams {
207208 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
208209 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].min_activation_height = 0 ; // No activation delay
209210
210- consensus.vDeployments [Consensus::DEPLOYMENT_V20].bit = 9 ;
211- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nStartTime = 1700006400 ; // November 15, 2023
212- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nTimeout = 1731628800 ; // November 15, 2024
213- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nWindowSize = 4032 ;
214- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdStart = 3226 ; // 80% of 4032
215- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdMin = 2420 ; // 60% of 4032
216- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nFalloffCoeff = 5 ; // this corresponds to 10 periods
217-
218211 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].bit = 10 ;
219212 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nStartTime = 1704067200 ; // January 1, 2024
220213 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nTimeout = 1767225600 ; // January 1, 2026
@@ -394,7 +387,8 @@ class CTestNetParams : public CChainParams {
394387 consensus.DIP0024Height = 769700 ; // 0000008d84e4efd890ae95c70a7a6126a70a80e5c19e4cb264a5b3469aeef172
395388 consensus.DIP0024QuorumsHeight = 770730 ; // 0000003c43b3ae7fffe61278ca5537a0e256ebf4d709d45f0ab040271074d51e
396389 consensus.V19Height = 850100 ; // 000004728b8ff2a16b9d4eebb0fd61eeffadc9c7fe4b0ec0b5a739869401ab5b
397- consensus.MinBIP9WarningHeight = 850100 + 2016 ; // v19 activation height + miner confirmation window
390+ consensus.V20Height = 905100 ; // 0000020c5e0f86f385cbf8e90210de9a9fd63633f01433bf47a6b3227a2851fd
391+ consensus.MinBIP9WarningHeight = 905100 + 2016 ; // v19 activation height + miner confirmation window
398392 consensus.powLimit = uint256S (" 00000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ); // ~uint256(0) >> 20
399393 consensus.nPowTargetTimespan = 24 * 60 * 60 ; // Dash: 1 day
400394 consensus.nPowTargetSpacing = 2.5 * 60 ; // Dash: 2.5 minutes
@@ -409,14 +403,6 @@ class CTestNetParams : public CChainParams {
409403 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
410404 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].min_activation_height = 0 ; // No activation delay
411405
412- consensus.vDeployments [Consensus::DEPLOYMENT_V20].bit = 9 ;
413- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nStartTime = 1693526400 ; // Friday, September 1, 2023 0:00:00
414- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
415- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nWindowSize = 100 ;
416- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdStart = 80 ; // 80% of 100
417- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdMin = 60 ; // 60% of 100
418- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nFalloffCoeff = 5 ; // this corresponds to 10 periods
419-
420406 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].bit = 10 ;
421407 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nStartTime = 1693526400 ; // Friday, September 1, 2023 0:00:00
422408 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
@@ -570,7 +556,8 @@ class CDevNetParams : public CChainParams {
570556 consensus.DIP0024Height = 300 ;
571557 consensus.DIP0024QuorumsHeight = 300 ;
572558 consensus.V19Height = 300 ;
573- consensus.MinBIP9WarningHeight = 300 + 2016 ; // v19 activation height + miner confirmation window
559+ consensus.V20Height = 300 ;
560+ consensus.MinBIP9WarningHeight = 300 + 2016 ; // v20 activation height + miner confirmation window
574561 consensus.powLimit = uint256S (" 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ); // ~uint256(0) >> 1
575562 consensus.nPowTargetTimespan = 24 * 60 * 60 ; // Dash: 1 day
576563 consensus.nPowTargetSpacing = 2.5 * 60 ; // Dash: 2.5 minutes
@@ -585,14 +572,6 @@ class CDevNetParams : public CChainParams {
585572 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
586573 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].min_activation_height = 0 ; // No activation delay
587574
588- consensus.vDeployments [Consensus::DEPLOYMENT_V20].bit = 9 ;
589- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nStartTime = 1661990400 ; // Sep 1st, 2022
590- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
591- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nWindowSize = 120 ;
592- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdStart = 80 ; // 80% of 100
593- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdMin = 60 ; // 60% of 100
594- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nFalloffCoeff = 5 ; // this corresponds to 10 periods
595-
596575 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].bit = 10 ;
597576 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nStartTime = 1661990400 ; // Sep 1st, 2022
598577 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
@@ -810,6 +789,7 @@ class CRegTestParams : public CChainParams {
810789 consensus.DIP0024Height = 900 ;
811790 consensus.DIP0024QuorumsHeight = 900 ;
812791 consensus.V19Height = 900 ;
792+ consensus.V20Height = 1200 ;
813793 consensus.MinBIP9WarningHeight = 0 ;
814794 consensus.powLimit = uint256S (" 7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" ); // ~uint256(0) >> 1
815795 consensus.nPowTargetTimespan = 24 * 60 * 60 ; // Dash: 1 day
@@ -826,14 +806,6 @@ class CRegTestParams : public CChainParams {
826806 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
827807 consensus.vDeployments [Consensus::DEPLOYMENT_TESTDUMMY].min_activation_height = 0 ; // No activation delay
828808
829- consensus.vDeployments [Consensus::DEPLOYMENT_V20].bit = 9 ;
830- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nStartTime = 0 ;
831- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
832- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nWindowSize = 400 ;
833- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdStart = 384 ; // 80% of 480
834- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nThresholdMin = 288 ; // 60% of 480
835- consensus.vDeployments [Consensus::DEPLOYMENT_V20].nFalloffCoeff = 5 ; // this corresponds to 10 periods
836-
837809 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].bit = 10 ;
838810 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nStartTime = 0 ;
839811 consensus.vDeployments [Consensus::DEPLOYMENT_MN_RR].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
@@ -1062,6 +1034,8 @@ static void MaybeUpdateHeights(const ArgsManager& args, Consensus::Params& conse
10621034 consensus.DIP0008Height = int {height};
10631035 } else if (name == " dip0020" ) {
10641036 consensus.DIP0020Height = int {height};
1037+ } else if (name == " v20" ) {
1038+ consensus.V20Height = int {height};
10651039 } else {
10661040 throw std::runtime_error (strprintf (" Invalid name (%s) for -testactivationheight=name@height." , arg));
10671041 }
0 commit comments