message: consensus: add signet validation
diff: #include <script/script.h>
  #include <script/sigcache.h>
  #include <shutdown.h>
  +#include <signet.h>
  #include <timedata.h>
  #include <tinyformat.h>
  #include <txdb.h>
  @@ -939,6 +940,11 @@ bool ReadBlockFromDisk(CBlock& block, const FlatFilePos& pos, const Consensus::P
  if (block.IsProofOfWork() && !CheckProofOfWork(block.GetHash(), block.nBits, consensusParams))
  return error("ReadBlockFromDisk: Errors in block header at %s", pos.ToString());
  + // Signet only: check block solution
  + if (consensusParams.signet_blocks && !CheckSignetBlockSolution(block, consensusParams)) {
  + return error("ReadBlockFromDisk: Errors in block solution at %s", pos.ToString());
  + }
  +
  // Set flag if proof of stake
  if (block.IsProofOfStake())
  block.nFlags |= CBlockIndex::BLOCK_PROOF_OF_STAKE;
  @@ -3163,6 +3169,11 @@ bool CheckBlock(const CBlock& block, BlockValidationState& state, const Consensu
  if (!CheckBlockHeader(block, state, consensusParams, fCheckPOW && !block.IsProofOfStake()))
  return false;
  + // Signet only: check block solution
  + if (consensusParams.signet_blocks && fCheckPOW && !CheckSignetBlockSolution(block, consensusParams)) {
  + return state.Invalid(BlockValidationResult::BLOCK_CONSENSUS, "bad-signet-blksig", "signet block signature validation failure");
  + }
  +
  // Check the merkle root.
  if (fCheckMerkleRoot) {
  bool mutated;
  