LevelDB block and coin databases
Split off CBlockTreeDB and CCoinsViewDB into txdb-*.{cpp,h} files,
implemented by either LevelDB or BDB.
Based on code from earlier commits by Mike Hearn in his leveldb
branch.
This commit is contained in:
55
src/db.h
55
src/db.h
@@ -315,61 +315,6 @@ public:
|
||||
|
||||
|
||||
|
||||
/** Access to the transaction database (coins.dat) */
|
||||
class CCoinsDB : public CDB
|
||||
{
|
||||
public:
|
||||
CCoinsDB(const char* pszMode="r+") : CDB("coins.dat", pszMode) { }
|
||||
private:
|
||||
CCoinsDB(const CCoinsDB&);
|
||||
void operator=(const CCoinsDB&);
|
||||
public:
|
||||
bool ReadCoins(uint256 hash, CCoins &coins);
|
||||
bool WriteCoins(uint256 hash, const CCoins& coins);
|
||||
bool HaveCoins(uint256 hash);
|
||||
bool ReadHashBestChain(uint256& hashBestChain);
|
||||
bool WriteHashBestChain(uint256 hashBestChain);
|
||||
};
|
||||
|
||||
|
||||
/** CCoinsView backed by a CCoinsDB */
|
||||
class CCoinsViewDB : public CCoinsView
|
||||
{
|
||||
protected:
|
||||
CCoinsDB db;
|
||||
public:
|
||||
CCoinsViewDB();
|
||||
bool GetCoins(uint256 txid, CCoins &coins);
|
||||
bool SetCoins(uint256 txid, const CCoins &coins);
|
||||
bool HaveCoins(uint256 txid);
|
||||
CBlockIndex *GetBestBlock();
|
||||
bool SetBestBlock(CBlockIndex *pindex);
|
||||
bool BatchWrite(const std::map<uint256, CCoins> &mapCoins, CBlockIndex *pindex);
|
||||
};
|
||||
|
||||
|
||||
/** Access to the block database (blktree.dat) */
|
||||
class CBlockTreeDB : public CDB
|
||||
{
|
||||
public:
|
||||
CBlockTreeDB(const char* pszMode="r+") : CDB("blktree.dat", pszMode) { }
|
||||
private:
|
||||
CBlockTreeDB(const CBlockTreeDB&);
|
||||
void operator=(const CBlockTreeDB&);
|
||||
public:
|
||||
bool WriteBlockIndex(const CDiskBlockIndex& blockindex);
|
||||
bool ReadBestInvalidWork(CBigNum& bnBestInvalidWork);
|
||||
bool WriteBestInvalidWork(CBigNum bnBestInvalidWork);
|
||||
bool ReadBlockFileInfo(int nFile, CBlockFileInfo &fileinfo);
|
||||
bool WriteBlockFileInfo(int nFile, const CBlockFileInfo &fileinfo);
|
||||
bool ReadLastBlockFile(int &nFile);
|
||||
bool WriteLastBlockFile(int nFile);
|
||||
bool LoadBlockIndexGuts();
|
||||
};
|
||||
|
||||
|
||||
bool LoadBlockIndexDB();
|
||||
|
||||
|
||||
/** Access to the (IP) address database (peers.dat) */
|
||||
class CAddrDB
|
||||
|
||||
Reference in New Issue
Block a user