CAddrMan: stochastic address manager

Design goals:
 * Only keep a limited number of addresses around, so that addr.dat does not grow without bound.
 * Keep the address tables in-memory, and occasionally write the table to addr.dat.
 * Make sure no (localized) attacker can fill the entire table with his nodes/addresses.

See comments in addrman.h for more detailed information.
This commit is contained in:
Pieter Wuille
2012-01-04 23:39:45 +01:00
parent 8c12851ed4
commit 5fee401fe1
17 changed files with 1180 additions and 249 deletions

View File

@@ -16,6 +16,7 @@
class CAccount;
class CAccountingEntry;
class CAddress;
class CAddrMan;
class CBlockLocator;
class CDiskBlockIndex;
class CDiskTxPos;
@@ -307,7 +308,8 @@ private:
public:
bool WriteAddress(const CAddress& addr);
bool EraseAddress(const CAddress& addr);
bool LoadAddresses();
bool WriteAddrman(const CAddrMan& addr);
bool LoadAddresses(bool &fUpdate);
};
bool LoadAddresses();