mirror of
https://github.com/bitcoin/bitcoin.git
synced 2024-11-20 10:38:42 +01:00
db: Make reusable base class for index databases.
This commit is contained in:
parent
9b0ec1a7f9
commit
e5af5fc6fb
10
src/txdb.cpp
10
src/txdb.cpp
@ -415,8 +415,12 @@ bool CCoinsViewDB::Upgrade() {
|
|||||||
return !ShutdownRequested();
|
return !ShutdownRequested();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BaseIndexDB::BaseIndexDB(const fs::path& path, size_t n_cache_size, bool f_memory, bool f_wipe, bool f_obfuscate) :
|
||||||
|
CDBWrapper(path, n_cache_size, f_memory, f_wipe, f_obfuscate)
|
||||||
|
{}
|
||||||
|
|
||||||
TxIndexDB::TxIndexDB(size_t n_cache_size, bool f_memory, bool f_wipe) :
|
TxIndexDB::TxIndexDB(size_t n_cache_size, bool f_memory, bool f_wipe) :
|
||||||
CDBWrapper(GetDataDir() / "indexes" / "txindex", n_cache_size, f_memory, f_wipe)
|
BaseIndexDB(GetDataDir() / "indexes" / "txindex", n_cache_size, f_memory, f_wipe)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
bool TxIndexDB::ReadTxPos(const uint256 &txid, CDiskTxPos& pos) const
|
bool TxIndexDB::ReadTxPos(const uint256 &txid, CDiskTxPos& pos) const
|
||||||
@ -433,7 +437,7 @@ bool TxIndexDB::WriteTxs(const std::vector<std::pair<uint256, CDiskTxPos>>& v_po
|
|||||||
return WriteBatch(batch);
|
return WriteBatch(batch);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TxIndexDB::ReadBestBlock(CBlockLocator& locator) const
|
bool BaseIndexDB::ReadBestBlock(CBlockLocator& locator) const
|
||||||
{
|
{
|
||||||
bool success = Read(DB_BEST_BLOCK, locator);
|
bool success = Read(DB_BEST_BLOCK, locator);
|
||||||
if (!success) {
|
if (!success) {
|
||||||
@ -442,7 +446,7 @@ bool TxIndexDB::ReadBestBlock(CBlockLocator& locator) const
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool TxIndexDB::WriteBestBlock(const CBlockLocator& locator)
|
bool BaseIndexDB::WriteBestBlock(const CBlockLocator& locator)
|
||||||
{
|
{
|
||||||
return Write(DB_BEST_BLOCK, locator);
|
return Write(DB_BEST_BLOCK, locator);
|
||||||
}
|
}
|
||||||
|
21
src/txdb.h
21
src/txdb.h
@ -123,6 +123,19 @@ public:
|
|||||||
bool LoadBlockIndexGuts(const Consensus::Params& consensusParams, std::function<CBlockIndex*(const uint256&)> insertBlockIndex);
|
bool LoadBlockIndexGuts(const Consensus::Params& consensusParams, std::function<CBlockIndex*(const uint256&)> insertBlockIndex);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class BaseIndexDB : public CDBWrapper
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
BaseIndexDB(const fs::path& path, size_t n_cache_size,
|
||||||
|
bool f_memory = false, bool f_wipe = false, bool f_obfuscate = false);
|
||||||
|
|
||||||
|
/// Read block locator of the chain that the index is in sync with.
|
||||||
|
bool ReadBestBlock(CBlockLocator& locator) const;
|
||||||
|
|
||||||
|
/// Write block locator of the chain that the index is in sync with.
|
||||||
|
bool WriteBestBlock(const CBlockLocator& locator);
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Access to the txindex database (indexes/txindex/)
|
* Access to the txindex database (indexes/txindex/)
|
||||||
*
|
*
|
||||||
@ -132,7 +145,7 @@ public:
|
|||||||
* and block index entries may not be flushed to disk until after this database
|
* and block index entries may not be flushed to disk until after this database
|
||||||
* is updated.
|
* is updated.
|
||||||
*/
|
*/
|
||||||
class TxIndexDB : public CDBWrapper
|
class TxIndexDB : public BaseIndexDB
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit TxIndexDB(size_t n_cache_size, bool f_memory = false, bool f_wipe = false);
|
explicit TxIndexDB(size_t n_cache_size, bool f_memory = false, bool f_wipe = false);
|
||||||
@ -144,12 +157,6 @@ public:
|
|||||||
/// Write a batch of transaction positions to the DB.
|
/// Write a batch of transaction positions to the DB.
|
||||||
bool WriteTxs(const std::vector<std::pair<uint256, CDiskTxPos>>& v_pos);
|
bool WriteTxs(const std::vector<std::pair<uint256, CDiskTxPos>>& v_pos);
|
||||||
|
|
||||||
/// Read block locator of the chain that the txindex is in sync with.
|
|
||||||
bool ReadBestBlock(CBlockLocator& locator) const;
|
|
||||||
|
|
||||||
/// Write block locator of the chain that the txindex is in sync with.
|
|
||||||
bool WriteBestBlock(const CBlockLocator& locator);
|
|
||||||
|
|
||||||
/// Migrate txindex data from the block tree DB, where it may be for older nodes that have not
|
/// Migrate txindex data from the block tree DB, where it may be for older nodes that have not
|
||||||
/// been upgraded yet to the new database.
|
/// been upgraded yet to the new database.
|
||||||
bool MigrateData(CBlockTreeDB& block_tree_db, const CBlockLocator& best_locator);
|
bool MigrateData(CBlockTreeDB& block_tree_db, const CBlockLocator& best_locator);
|
||||||
|
Loading…
Reference in New Issue
Block a user