diff --git a/src/main.cpp b/src/main.cpp index 008bd3197..a9d1223ab 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2593,6 +2593,12 @@ bool ConnectBlock(const CBlock& block, CValidationState& state, CBlockIndex* pin // verify that the view's current state corresponds to the previous block uint256 hashPrevBlock = pindex->pprev == NULL ? uint256() : pindex->pprev->GetBlockHash(); + if ( hashPrevBlock != view.GetBestBlock() ) + { + fprintf(stderr,"ConnectBlock(): hashPrevBlock != view.GetBestBlock()\n"); + return state.DoS(1, error("ConnectBlock(): hashPrevBlock != view.GetBestBlock()"), + REJECT_INVALID, "hashPrevBlock-not-bestblock"); + } assert(hashPrevBlock == view.GetBestBlock()); // Special case for the genesis block, skipping connection of its transactions diff --git a/src/miner.cpp b/src/miner.cpp index 3bd4b1c66..204047a57 100644 --- a/src/miner.cpp +++ b/src/miner.cpp @@ -635,7 +635,7 @@ static bool ProcessBlockFound(CBlock* pblock) return error("KomodoMiner: ProcessNewBlock, block not accepted"); TrackMinedBlock(pblock->GetHash()); - if ( vNodes.size() < KOMODO_LIMITED_NETWORKSIZE*2 ) + //if ( vNodes.size() < KOMODO_LIMITED_NETWORKSIZE*2 ) { int32_t n = 1; //fprintf(stderr,"broadcast new block t.%u\n",(uint32_t)time(NULL)); @@ -648,7 +648,8 @@ static bool ProcessBlockFound(CBlock* pblock) if ( (rand() % n) == 0 ) { pnode->PushMessage("block", *pblock); - n++; + if ( n++ > 8 ) + break; } } }