|
|
@ -1945,8 +1945,8 @@ void PartitionCheck(bool (*initialDownloadCheck)(), CCriticalSection& cs, const
|
|
|
|
// How likely is it to find that many by chance?
|
|
|
|
// How likely is it to find that many by chance?
|
|
|
|
double p = boost::math::pdf(poisson, nBlocks);
|
|
|
|
double p = boost::math::pdf(poisson, nBlocks);
|
|
|
|
|
|
|
|
|
|
|
|
LogPrint("partitioncheck", "%s : Found %d blocks in the last %d hours\n", __func__, nBlocks, SPAN_HOURS);
|
|
|
|
LogPrint("partitioncheck", "%s: Found %d blocks in the last %d hours\n", __func__, nBlocks, SPAN_HOURS);
|
|
|
|
LogPrint("partitioncheck", "%s : likelihood: %g\n", __func__, p);
|
|
|
|
LogPrint("partitioncheck", "%s: likelihood: %g\n", __func__, p);
|
|
|
|
|
|
|
|
|
|
|
|
// Aim for one false-positive about every fifty years of normal running:
|
|
|
|
// Aim for one false-positive about every fifty years of normal running:
|
|
|
|
const int FIFTY_YEARS = 50*365*24*60*60;
|
|
|
|
const int FIFTY_YEARS = 50*365*24*60*60;
|
|
|
@ -3047,7 +3047,7 @@ bool ContextualCheckBlockHeader(const CBlockHeader& block, CValidationState& sta
|
|
|
|
|
|
|
|
|
|
|
|
// Reject block.nVersion=2 blocks when 95% (75% on testnet) of the network has upgraded:
|
|
|
|
// Reject block.nVersion=2 blocks when 95% (75% on testnet) of the network has upgraded:
|
|
|
|
if (block.nVersion < 3 && IsSuperMajority(3, pindexPrev, consensusParams.nMajorityRejectBlockOutdated, consensusParams))
|
|
|
|
if (block.nVersion < 3 && IsSuperMajority(3, pindexPrev, consensusParams.nMajorityRejectBlockOutdated, consensusParams))
|
|
|
|
return state.Invalid(error("%s : rejected nVersion=2 block", __func__),
|
|
|
|
return state.Invalid(error("%s: rejected nVersion=2 block", __func__),
|
|
|
|
REJECT_OBSOLETE, "bad-version");
|
|
|
|
REJECT_OBSOLETE, "bad-version");
|
|
|
|
|
|
|
|
|
|
|
|
// Reject block.nVersion=3 blocks when 95% (75% on testnet) of the network has upgraded:
|
|
|
|
// Reject block.nVersion=3 blocks when 95% (75% on testnet) of the network has upgraded:
|
|
|
|