Check devnet genesis block (#2057)

* Fix off-by-one in BIPXX activation heights for devnet

* Fail on invalid devnet genesis block
This commit is contained in:
UdjinM6 2018-05-13 23:56:51 +03:00 committed by GitHub
parent 1dbf5a0f63
commit ff93dd6131
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 7 additions and 5 deletions

View File

@ -420,9 +420,9 @@ public:
consensus.nGovernanceMinQuorum = 1; consensus.nGovernanceMinQuorum = 1;
consensus.nGovernanceFilterElements = 500; consensus.nGovernanceFilterElements = 500;
consensus.nMasternodeMinimumConfirmations = 1; consensus.nMasternodeMinimumConfirmations = 1;
consensus.BIP34Height = 2; // BIP34 activated immediately on devnet consensus.BIP34Height = 1; // BIP34 activated immediately on devnet
consensus.BIP65Height = 2; // BIP65 activated immediately on devnet consensus.BIP65Height = 1; // BIP65 activated immediately on devnet
consensus.BIP66Height = 2; // BIP66 activated immediately on devnet consensus.BIP66Height = 1; // BIP66 activated immediately on devnet
consensus.DIP0001Height = 2; // DIP0001 activated immediately on devnet consensus.DIP0001Height = 2; // DIP0001 activated immediately on devnet
consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); // ~uint256(0) >> 1 consensus.powLimit = uint256S("7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); // ~uint256(0) >> 1
consensus.nPowTargetTimespan = 24 * 60 * 60; // Dash: 1 day consensus.nPowTargetTimespan = 24 * 60 * 60; // Dash: 1 day

View File

@ -4212,8 +4212,10 @@ bool InitBlockIndex(const CChainParams& chainparams)
return false; return false;
if (chainparams.NetworkIDString() == CBaseChainParams::DEVNET) { if (chainparams.NetworkIDString() == CBaseChainParams::DEVNET) {
if (!AddGenesisBlock(chainparams, chainparams.DevNetGenesisBlock(), state)) // We can't continue if devnet genesis block is invalid
return false; std::shared_ptr<const CBlock> shared_pblock = std::make_shared<const CBlock>(chainparams.DevNetGenesisBlock());
bool fProcessDevnetGenesisBlock = ProcessNewBlock(chainparams, shared_pblock, true, NULL);
assert(fProcessDevnetGenesisBlock);
} }
// Force a chainstate write so that when we VerifyDB in a moment, it doesn't check stale data // Force a chainstate write so that when we VerifyDB in a moment, it doesn't check stale data