Satoshi MailBeta Open in Satoshi Mail

better IsInitialBlockDownload

Commit by Satoshi Nakamoto (--author=Satoshi Nakamoto) on 27 July 2010 · release v0.3.6 · 1 files, +10 −14

Open in Satoshi Mail View on GitHub

Files changed

main.cpp
@@ -850,22 +850,19 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast)
     return bnNew.GetCompact();
 }
 
-vector<int> vStartingHeight;
-void AddStartingHeight(int nStartingHeight)
+bool IsInitialBlockDownload()
 {
-    if (nStartingHeight != -1)
+    if (pindexBest == NULL)
+        return true;
+    static int64 nLastUpdate;
+    static CBlockIndex* pindexLastBest;
+    if (pindexBest != pindexLastBest)
     {
-        vStartingHeight.push_back(nStartingHeight);
-        sort(vStartingHeight.begin(), vStartingHeight.end());
+        pindexLastBest = pindexBest;
+        nLastUpdate = GetTime();
     }
-}
-
-bool IsInitialBlockDownload()
-{
-    int nMedian = 69000;
-    if (vStartingHeight.size() >= 5)
-        nMedian = vStartingHeight[vStartingHeight.size()/2];
-    return nBestHeight < nMedian-1000;
+    return (GetTime() - nLastUpdate < 10 &&
+            pindexBest->nTime < GetTime() - 24 * 60 * 60);
 }
 
 
@@ -1923,7 +1920,6 @@ bool ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv)
         }
 
         AddTimeData(pfrom->addr.ip, nTime);
-        AddStartingHeight(pfrom->nStartingHeight);
 
         // Change version
         if (pfrom->nVersion >= 209)