From d97a37f4a9553ec6c0e58abf0d1e67621b4ea1e3 Mon Sep 17 00:00:00 2001 From: Ross Nicoll Date: Sun, 26 Jul 2015 12:22:04 +0000 Subject: Use block height 0 when checking for genesis block There is no previous block when validating the genesis block as part of contextual checks, so block height cannot be used. Consensus parameters are now taken from height 0 for the genesis check, and from block height only if the it's not the genesis block. --- src/main.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index dfcd50310..ded32eb03 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2747,14 +2747,14 @@ bool CheckBlock(const CBlock& block, CValidationState& state, bool fCheckPOW, bo bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& state, CBlockIndex * const pindexPrev) { const CChainParams& chainParams = Params(); - const Consensus::Params& consensusParams = chainParams.GetConsensus(pindexPrev->nHeight + 1); uint256 hash = block.GetHash(); - if (hash == consensusParams.hashGenesisBlock) + if (hash == chainParams.GetConsensus(0).hashGenesisBlock) return true; assert(pindexPrev); int nHeight = pindexPrev->nHeight+1; + const Consensus::Params& consensusParams = chainParams.GetConsensus(nHeight); // Disallow legacy blocks after merge-mining start. if (!consensusParams.fAllowLegacyBlocks -- cgit v1.2.3