|
|
|
@ -2549,8 +2549,8 @@ void static UpdateTip(CBlockIndex *pindexNew) {
@@ -2549,8 +2549,8 @@ void static UpdateTip(CBlockIndex *pindexNew) {
|
|
|
|
|
nTimeBestReceived = GetTime(); |
|
|
|
|
mempool.AddTransactionsUpdated(1); |
|
|
|
|
|
|
|
|
|
LogPrintf("%s: new best=%s height=%d bits=%d log2_work=%.8g tx=%lu date=%s progress=%f cache=%.1fMiB(%utx)\n", __func__, |
|
|
|
|
chainActive.Tip()->GetBlockHash().ToString(), chainActive.Height(), chainActive.Tip()->nBits, |
|
|
|
|
LogPrintf("%s: new best=%s height=%d version=0x%08x log2_work=%.8g tx=%lu date='%s' progress=%f cache=%.1fMiB(%utx)\n", __func__, |
|
|
|
|
chainActive.Tip()->GetBlockHash().ToString(), chainActive.Height(), chainActive.Tip()->nVersion, |
|
|
|
|
log(chainActive.Tip()->nChainWork.getdouble())/log(2.0), (unsigned long)chainActive.Tip()->nChainTx, |
|
|
|
|
DateTimeStrFormat("%Y-%m-%d %H:%M:%S", chainActive.Tip()->GetBlockTime()), |
|
|
|
|
Checkpoints::GuessVerificationProgress(chainParams.Checkpoints(), chainActive.Tip()), pcoinsTip->DynamicMemoryUsage() * (1.0 / (1<<20)), pcoinsTip->GetCacheSize()); |
|
|
|
@ -3284,8 +3284,8 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
@@ -3284,8 +3284,8 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
|
|
|
|
|
// Reject outdated version blocks when 95% (75% on testnet) of the network has upgraded:
|
|
|
|
|
for (int32_t version = 2; version < 5; ++version) // check for version 2, 3 and 4 upgrades
|
|
|
|
|
if (block.nVersion < version && IsSuperMajority(version, pindexPrev, consensusParams.nMajorityRejectBlockOutdated, consensusParams)) |
|
|
|
|
return state.Invalid(false, REJECT_OBSOLETE, strprintf("bad-version(v%d)", version - 1), |
|
|
|
|
strprintf("rejected nVersion=%d block", version - 1)); |
|
|
|
|
return state.Invalid(false, REJECT_OBSOLETE, strprintf("bad-version(0x%08x)", version - 1), |
|
|
|
|
strprintf("rejected nVersion=0x%08x block", version - 1)); |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|