diff options
Diffstat (limited to 'src/main.h')
-rw-r--r-- | src/main.h | 105 |
1 files changed, 14 insertions, 91 deletions
diff --git a/src/main.h b/src/main.h index 87f1dbfa8f..ec89d8bdd3 100644 --- a/src/main.h +++ b/src/main.h @@ -70,7 +70,6 @@ extern CCriticalSection cs_main; extern std::map<uint256, CBlockIndex*> mapBlockIndex; extern std::vector<CBlockIndex*> vBlockIndexByHeight; extern std::set<CBlockIndex*, CBlockIndexWorkComparator> setBlockIndexValid; -extern uint256 hashGenesisBlock; extern CBlockIndex* pindexGenesisBlock; extern int nBestHeight; extern uint256 nBestChainWork; @@ -86,7 +85,6 @@ extern int64 nHPSTimerStart; extern int64 nTimeBestReceived; extern CCriticalSection cs_setpwalletRegistered; extern std::set<CWallet*> setpwalletRegistered; -extern unsigned char pchMessageStart[4]; extern bool fImporting; extern bool fReindex; extern bool fBenchmark; @@ -353,7 +351,7 @@ public: // Write index header unsigned int nSize = fileout.GetSerializeSize(*this); - fileout << FLATDATA(pchMessageStart) << nSize; + fileout << FLATDATA(Params().MessageStart()) << nSize; // Write undo data long fileOutPos = ftell(fileout); @@ -692,7 +690,7 @@ public: // Write index header unsigned int nSize = fileout.GetSerializeSize(*this); - fileout << FLATDATA(pchMessageStart) << nSize; + fileout << FLATDATA(Params().MessageStart()) << nSize; // Write block long fileOutPos = ftell(fileout); @@ -1202,22 +1200,14 @@ class CBlockLocator protected: std::vector<uint256> vHave; public: - - CBlockLocator() - { - } + CBlockLocator() {} explicit CBlockLocator(const CBlockIndex* pindex) { Set(pindex); } - explicit CBlockLocator(uint256 hashBlock) - { - std::map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(hashBlock); - if (mi != mapBlockIndex.end()) - Set((*mi).second); - } + explicit CBlockLocator(uint256 hashBlock); CBlockLocator(const std::vector<uint256>& vHaveIn) { @@ -1241,83 +1231,16 @@ public: return vHave.empty(); } - void Set(const CBlockIndex* pindex) - { - vHave.clear(); - int nStep = 1; - while (pindex) - { - vHave.push_back(pindex->GetBlockHash()); - - // Exponentially larger steps back - for (int i = 0; pindex && i < nStep; i++) - pindex = pindex->pprev; - if (vHave.size() > 10) - nStep *= 2; - } - vHave.push_back(hashGenesisBlock); - } - - int GetDistanceBack() - { - // Retrace how far back it was in the sender's branch - int nDistance = 0; - int nStep = 1; - BOOST_FOREACH(const uint256& hash, vHave) - { - std::map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(hash); - if (mi != mapBlockIndex.end()) - { - CBlockIndex* pindex = (*mi).second; - if (pindex->IsInMainChain()) - return nDistance; - } - nDistance += nStep; - if (nDistance > 10) - nStep *= 2; - } - return nDistance; - } - - CBlockIndex* GetBlockIndex() - { - // Find the first block the caller has in the main chain - BOOST_FOREACH(const uint256& hash, vHave) - { - std::map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(hash); - if (mi != mapBlockIndex.end()) - { - CBlockIndex* pindex = (*mi).second; - if (pindex->IsInMainChain()) - return pindex; - } - } - return pindexGenesisBlock; - } - - uint256 GetBlockHash() - { - // Find the first block the caller has in the main chain - BOOST_FOREACH(const uint256& hash, vHave) - { - std::map<uint256, CBlockIndex*>::iterator mi = mapBlockIndex.find(hash); - if (mi != mapBlockIndex.end()) - { - CBlockIndex* pindex = (*mi).second; - if (pindex->IsInMainChain()) - return hash; - } - } - return hashGenesisBlock; - } - - int GetHeight() - { - CBlockIndex* pindex = GetBlockIndex(); - if (!pindex) - return 0; - return pindex->nHeight; - } + /** Given a block initialises the locator to that point in the chain. */ + void Set(const CBlockIndex* pindex); + /** Returns the distance in blocks this locator is from our chain head. */ + int GetDistanceBack(); + /** Returns the first best-chain block the locator contains. */ + CBlockIndex* GetBlockIndex(); + /** Returns the hash of the first best chain block the locator contains. */ + uint256 GetBlockHash(); + /** Returns the height of the first best chain block the locator has. */ + int GetHeight(); }; |