Is ChainParams where you change stuff about the coin?

trolltech

New Member
Mar 10, 2018
6
1
1
48
Like where do I change the rewards, amount of coins and some other stuff? Like is there more documentation for the below parameters.
Code:
 consensus.nSubsidyHalvingInterval = 210240; // Note: actual number of blocks per calendar year with DGW v3 is ~200700 (for example 449750 - 249050)
        consensus.nMasternodePaymentsStartBlock = 100000; // not true, but it's ok as long as it's less then nMasternodePaymentsIncreaseBlock
        consensus.nMasternodePaymentsIncreaseBlock = 158000; // actual historical value
        consensus.nMasternodePaymentsIncreasePeriod = 576*30; // 17280 - actual historical value
        consensus.nInstantSendKeepLock = 24;
        consensus.nBudgetPaymentsStartBlock = 328008; // actual historical value
        consensus.nBudgetPaymentsCycleBlocks = 16616; // ~(60*24*30)/2.6, actual number of blocks per month is 200700 / 12 = 16725
        consensus.nBudgetPaymentsWindowBlocks = 100;
        consensus.nBudgetProposalEstablishingTime = 60*60*24;
        consensus.nSuperblockStartBlock = 614820; // The block at which 12.1 goes live (end of final 12.0 budget cycle)
        consensus.nSuperblockCycle = 16616; // ~(60*24*30)/2.6, actual number of blocks per month is 200700 / 12 = 16725
        consensus.nGovernanceMinQuorum = 10;
        consensus.nGovernanceFilterElements = 20000;
        consensus.nMasternodeMinimumConfirmations = 15;
        consensus.nMajorityEnforceBlockUpgrade = 750;
        consensus.nMajorityRejectBlockOutdated = 950;
        consensus.nMajorityWindow = 1000;
        consensus.BIP34Height = 1;
        consensus.BIP34Hash = uint256S("0x000007d91d1254d60e2dd1ae580383070a4ddffa4c64c2eeb4a2f9ecc0414343");
        consensus.powLimit = uint256S("00000fffff000000000000000000000000000000000000000000000000000000");
        consensus.nPowTargetTimespan = 24 * 60 * 60; // Dash: 1 day
        consensus.nPowTargetSpacing = 2.5 * 60; // Dash: 2.5 minutes
        consensus.fPowAllowMinDifficultyBlocks = false;
        consensus.fPowNoRetargeting = false;
        consensus.nPowKGWHeight = 15200;
        consensus.nPowDGWHeight = 34140;
        consensus.nRuleChangeActivationThreshold = 1916; // 95% of 2016
        consensus.nMinerConfirmationWindow = 2016; // nPowTargetTimespan / nPowTargetSpacing
        consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].bit = 28;
        consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nStartTime = 1199145601; // January 1, 2008
        consensus.vDeployments[Consensus::DEPLOYMENT_TESTDUMMY].nTimeout = 1230767999; // December 31, 2008
 

thephez

Member
Dash Core Group
Jan 23, 2016
139
96
78
Changing values in there would generally result in something that is no longer compatible with Dash. I do not think you will find much documentation on them since they are unlikely to ever change.
 

trolltech

New Member
Mar 10, 2018
6
1
1
48
So what about if I want to use dash to start a new coin for learning purposes? How would I set everything to zero? Like I have made the genesis block already.
 

thephez

Member
Dash Core Group
Jan 23, 2016
139
96
78
Unless you are already extensively familiar with protocol details, etc., I would recommend experimenting with Dash testnet/regtest/devnet instead of trying to create a new coin. I think there are a few threads on this forum where people discuss chainparams though if you are already at that point.
 

trolltech

New Member
Mar 10, 2018
6
1
1
48
Ok, I think that I will try the devnet because I can create a genesis block with that one I have heard. Thanks for your help.
 

trolltech

New Member
Mar 10, 2018
6
1
1
48
Also there isn't really too much documentation on how to setup a devnet. Can you point me to any that you know of. Thanks