3033 | @@ -3031,10 +3034,13 @@ bool CheckBlock(const CBlock& block, CValidationState& state, const Consensus::P
3034 | if (block.fChecked)
3035 | return true;
3036 |
3037 | - // Check that the header is valid (particularly PoW). This is mostly
3038 | - // redundant with the call in AcceptBlockHeader.
3039 | - if (!CheckBlockHeader(block, state, consensusParams, fCheckPOW))
3040 | - return false;
3041 | + // We skip POW checks for genesis block
3042 | + if (block.GetHash() != consensusParams.hashGenesisBlock) {
Let's not skip all header checks (even though CheckBlockHeader only checks PoW at the moment).
Ok. I rewrote code to pass the POW check bool based also on if genesis block or not.
Thanks. However, given #9102 it sounds like we actually should skip all checks. If so, then CheckBlockHeader could check if it's the genesis block and skip all checks. The comment here could say: "Check that the header is valid (particularly PoW, and except for the genesis block)"