Bitcoin Core 32.1.0
P2P Digital Currency
Loading...
Searching...
No Matches
TxIndex::DB Class Reference

Access to the txindex database (indexes/txindex/). More...

Inheritance diagram for TxIndex::DB:
[legend]
Collaboration diagram for TxIndex::DB:
[legend]

Public Member Functions

 DB (size_t n_cache_size, bool f_memory=false, bool f_wipe=false)
void WriteTxs (const interfaces::BlockInfo &block)
 Write a block of transaction positions to the DB.
CBlockLocator ReadBestBlock () const override
 Read block locator of the chain that the index is in sync with.
void WriteBestBlock (CDBBatch &batch, const CBlockLocator &locator) override
 Write block locator of the chain that the index is in sync with.
Public Member Functions inherited from BaseIndex::DB
 DB (const fs::path &path, size_t n_cache_size, bool f_memory=false, bool f_wipe=false, bool f_obfuscate=false, bool f_bloom=true)
virtual ~DB ()=default
Public Member Functions inherited from CDBWrapper
 CDBWrapper (const DBParams &params)
 ~CDBWrapper ()
 CDBWrapper (const CDBWrapper &)=delete
CDBWrapper & operator= (const CDBWrapper &)=delete
template<typename K, typename V>
ReadStatus TryRead (const K &key, V &value) const
 Read and deserialize a value from the database, with explicit error discrimination.
template<typename K, typename V>
bool Read (const K &key, V &value) const
 Wrapper around TryRead() that preserves the original Read() semantics: returns true on success, false if the key is absent or deserialization fails, and throws dbwrapper_error on an internal DB error.
template<typename K, typename V>
void Write (const K &key, const V &value, bool fSync=false)
template<typename K>
bool Exists (const K &key) const
template<typename K>
void Erase (const K &key, bool fSync=false)
void WriteBatch (CDBBatch &batch, bool fSync=false)
void CompactFull ()
 Perform a blocking full compaction of the underlying LevelDB.
std::optional< std::string > GetProperty (const std::string &property) const
 Return a LevelDB property value, if available.
size_t DynamicMemoryUsage () const
CDBIterator * NewIterator ()
bool IsEmpty ()
 Return true if the database managed by this class contains no entries.
template<typename K>
size_t EstimateSize (const K &key_begin, const K &key_end) const

Public Attributes

const SipHasher13UJ m_hasher
 Used to hash the txid to compute the prefix.
const bool m_has_legacy
 Whether the database contains any legacy ('t' + txid) entries.

Private Member Functions

 DB (size_t n_cache_size, bool f_memory, bool f_wipe, bool has_legacy)

Additional Inherited Members

Public Types inherited from CDBWrapper
using ReadStatus = util::Expected<bool, ReadFailure>
Static Public Member Functions inherited from CDBWrapper
static bool HasKeyStartingWith (const fs::path &path, uint8_t prefix)

Detailed Description

Access to the txindex database (indexes/txindex/).

Definition at line 57 of file txindex.cpp.

Constructor & Destructor Documentation

◆ DB() [1/2]

TxIndex::DB::DB ( size_t n_cache_size,
bool f_memory = false,
bool f_wipe = false )
explicit

Definition at line 80 of file txindex.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ DB() [2/2]

TxIndex::DB::DB ( size_t n_cache_size,
bool f_memory,
bool f_wipe,
bool has_legacy )
private

Definition at line 90 of file txindex.cpp.

Here is the call graph for this function:

Member Function Documentation

◆ ReadBestBlock()

CBlockLocator TxIndex::DB::ReadBestBlock ( ) const
overridevirtual

Read block locator of the chain that the index is in sync with.

Note, the returned locator will be empty if no record exists.

Reimplemented from BaseIndex::DB.

Definition at line 96 of file txindex.cpp.

Here is the call graph for this function:

◆ WriteBestBlock()

void TxIndex::DB::WriteBestBlock ( CDBBatch & batch,
const CBlockLocator & locator )
overridevirtual

Write block locator of the chain that the index is in sync with.

Reimplemented from BaseIndex::DB.

Definition at line 106 of file txindex.cpp.

Here is the call graph for this function:

◆ WriteTxs()

void TxIndex::DB::WriteTxs ( const interfaces::BlockInfo & block)

Write a block of transaction positions to the DB.

Definition at line 111 of file txindex.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_has_legacy

const bool TxIndex::DB::m_has_legacy

Whether the database contains any legacy ('t' + txid) entries.

Definition at line 69 of file txindex.cpp.

◆ m_hasher

const SipHasher13UJ TxIndex::DB::m_hasher

Used to hash the txid to compute the prefix.

Definition at line 66 of file txindex.cpp.


The documentation for this class was generated from the following file: