From cfefc9211bdf67b58a1bf0f2a912c8799bad9d16 Mon Sep 17 00:00:00 2001 From: jl777 Date: Mon, 16 Apr 2018 08:59:42 +0300 Subject: [PATCH] Miner fixes --- src/main.cpp | 2 ++ src/miner.cpp | 12 ++++++------ 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index d78003829..210d40265 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3234,6 +3234,8 @@ bool CheckBlock(int32_t height,CBlockIndex *pindex,const CBlock& block, CValidat fprintf(stderr,"CheckBlockHeader error in CheckBlock\n"); return false; } + if ( fCheckPOW && !CheckEquihashSolution(&block, Params()) ) + return state.DoS(100, error("CheckBlockHeader(): Equihash solution invalid"),REJECT_INVALID, "invalid-solution"); komodo_block2pubkey33(pubkey33,(CBlock *)&block); if ( fCheckPOW && !CheckProofOfWork(height,pubkey33,block.GetHash(), block.nBits, Params().GetConsensus()) ) return state.DoS(50, error("CheckBlock(): proof of work failed"),REJECT_INVALID, "high-hash"); diff --git a/src/miner.cpp b/src/miner.cpp index 83cf93fcf..e3743fe35 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -861,6 +861,12 @@ void static BitcoinMiner() // fprintf(stderr," missed target\n"); return false; } + CValidationState tmpstate; + if ( !TestBlockValidity(tmpstate, *pblock, pindexPrev, true, false)) + { + fprintf(stderr,"formerly valid mining block became invalid\n"); + break; + } if ( /*ASSETCHAINS_SYMBOL[0] == 0 &&*/ Mining_start != 0 && time(NULL) < Mining_start+roundrobin_delay ) { //printf("Round robin diff sleep %d\n",(int32_t)(Mining_start+roundrobin_delay-time(NULL))); @@ -1002,12 +1008,6 @@ void static BitcoinMiner() // Changing pblock->nTime can change work required on testnet: hashTarget.SetCompact(pblock->nBits); } - CValidationState tmpstate; - if ( !TestBlockValidity(tmpstate, *pblock, pindexPrev, true, false)) - { - fprintf(stderr,"formerly valid mining block became invalid, likely due to tx expiration\n"); - break; - } } } }