mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-19 06:43:45 +01:00
Merge pull request #5158
9ec75c5Add a locking mechanism to IsInitialBlockDownload to ensure it never goes from false to true. (Ruben Dario Ponticelli)a2d0fc6Fix IsInitialBlockDownload which was broken by headers first. (Ruben Dario Ponticelli)
This commit is contained in:
17
src/main.cpp
17
src/main.cpp
@@ -1199,15 +1199,14 @@ bool IsInitialBlockDownload()
|
||||
LOCK(cs_main);
|
||||
if (fImporting || fReindex || chainActive.Height() < Checkpoints::GetTotalBlocksEstimate())
|
||||
return true;
|
||||
static int64_t nLastUpdate;
|
||||
static CBlockIndex* pindexLastBest;
|
||||
if (chainActive.Tip() != pindexLastBest)
|
||||
{
|
||||
pindexLastBest = chainActive.Tip();
|
||||
nLastUpdate = GetTime();
|
||||
}
|
||||
return (GetTime() - nLastUpdate < 10 &&
|
||||
chainActive.Tip()->GetBlockTime() < GetTime() - 24 * 60 * 60);
|
||||
static bool lockIBDState = false;
|
||||
if (lockIBDState)
|
||||
return false;
|
||||
bool state = (chainActive.Height() < pindexBestHeader->nHeight - 24 * 6 ||
|
||||
pindexBestHeader->GetBlockTime() < GetTime() - 24 * 60 * 60);
|
||||
if (!state)
|
||||
lockIBDState = true;
|
||||
return state;
|
||||
}
|
||||
|
||||
bool fLargeWorkForkFound = false;
|
||||
|
||||
Reference in New Issue
Block a user