Bitcoin Core 31.1.0
P2P Digital Currency
Loading...
Searching...
No Matches
CCoinsViewDB Class Referencefinal

CCoinsView backed by the coin database (chainstate/). More...

#include <txdb.h>

Inheritance diagram for CCoinsViewDB:
[legend]
Collaboration diagram for CCoinsViewDB:
[legend]

Public Member Functions

 CCoinsViewDB (DBParams db_params, CoinsViewOptions options)
 ~CCoinsViewDB () override
std::optional< CoinGetCoin (const COutPoint &outpoint) const override
bool HaveCoin (const COutPoint &outpoint) const override
uint256 GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents.
std::vector< uint256GetHeadBlocks () const override
void BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &hashBlock) override
std::unique_ptr< CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state.
bool NeedsUpgrade ()
 Whether an unsupported database format is used.
size_t EstimateSize () const override
 Estimate database size (0 if not implemented).
void ResizeCache (size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main
 Dynamically alter the underlying leveldb cache size.
std::shared_future< void > CompactFull () EXCLUSIVE_LOCKS_REQUIRED(cs_main
 Perform a full compaction of the underlying LevelDB on a one-shot background thread.
std::optional< std::string > GetDBProperty (const std::string &property)
 Return an underlying LevelDB property value, if available.
Public Member Functions inherited from CCoinsView
virtual std::optional< CoinPeekCoin (const COutPoint &outpoint) const
virtual ~CCoinsView ()=default
 As we use CCoinsViews polymorphically, have a virtual destructor.

Public Attributes

void !m_db_mutex
std::shared_future< void > !m_db_mutex

Protected Attributes

DBParams m_db_params
CoinsViewOptions m_options
Mutex m_db_mutex
 Prevents CompactFull() from using m_db while ResizeCache() replaces it.
std::unique_ptr< CDBWrapperm_db
std::shared_future< void > m_compaction

Detailed Description

CCoinsView backed by the coin database (chainstate/).

Definition at line 36 of file txdb.h.

Constructor & Destructor Documentation

◆ CCoinsViewDB()

CCoinsViewDB::CCoinsViewDB ( DBParams db_params,
CoinsViewOptions options )
explicit

Definition at line 57 of file txdb.cpp.

◆ ~CCoinsViewDB()

CCoinsViewDB::~CCoinsViewDB ( )
override

Definition at line 62 of file txdb.cpp.

Member Function Documentation

◆ BatchWrite()

void CCoinsViewDB::BatchWrite ( CoinsViewCacheCursor & cursor,
const uint256 & hashBlock )
overridevirtual

Do a bulk modification (multiple Coin changes + BestBlock change). The passed cursor is used to iterate through the coins.

Reimplemented from CCoinsView.

Definition at line 115 of file txdb.cpp.

Here is the call graph for this function:

◆ CompactFull()

std::shared_future< void > CCoinsViewDB::CompactFull ( )

Perform a full compaction of the underlying LevelDB on a one-shot background thread.

Definition at line 191 of file txdb.cpp.

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

◆ Cursor()

std::unique_ptr< CCoinsViewCursor > CCoinsViewDB::Cursor ( ) const
overridevirtual

Get a cursor to iterate over the whole state.

Reimplemented from CCoinsView.

Definition at line 233 of file txdb.cpp.

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

◆ EstimateSize()

size_t CCoinsViewDB::EstimateSize ( ) const
overridevirtual

Estimate database size (0 if not implemented).

Reimplemented from CCoinsView.

Definition at line 181 of file txdb.cpp.

◆ GetBestBlock()

uint256 CCoinsViewDB::GetBestBlock ( ) const
overridevirtual

Retrieve the block hash whose state this CCoinsView currently represents.

Reimplemented from CCoinsView.

Definition at line 100 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetCoin()

std::optional< Coin > CCoinsViewDB::GetCoin ( const COutPoint & outpoint) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint. May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Reimplemented from CCoinsView.

Definition at line 87 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetDBProperty()

std::optional< std::string > CCoinsViewDB::GetDBProperty ( const std::string & property)

Return an underlying LevelDB property value, if available.

Definition at line 186 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetHeadBlocks()

std::vector< uint256 > CCoinsViewDB::GetHeadBlocks ( ) const
overridevirtual

Retrieve the range of blocks that may have been only partially written. If the database is in a consistent state, the result is the empty vector. Otherwise, a two-element vector is returned consisting of the new and the old block hash, in that order.

Reimplemented from CCoinsView.

Definition at line 107 of file txdb.cpp.

Here is the caller graph for this function:

◆ HaveCoin()

bool CCoinsViewDB::HaveCoin ( const COutPoint & outpoint) const
overridevirtual

Just check whether a given outpoint is unspent. May populate the cache. Use PeekCoin() to perform a non-caching lookup.

Reimplemented from CCoinsView.

Definition at line 96 of file txdb.cpp.

Here is the caller graph for this function:

◆ NeedsUpgrade()

bool CCoinsViewDB::NeedsUpgrade ( )

Whether an unsupported database format is used.

Definition at line 36 of file txdb.cpp.

◆ ResizeCache()

void CCoinsViewDB::ResizeCache ( size_t new_cache_size)

Dynamically alter the underlying leveldb cache size.

Definition at line 72 of file txdb.cpp.

Member Data Documentation

◆ !m_db_mutex [1/2]

std::shared_future< void > CCoinsViewDB::!m_db_mutex

Definition at line 64 of file txdb.h.

◆ !m_db_mutex [2/2]

void CCoinsViewDB::!m_db_mutex

Definition at line 61 of file txdb.h.

◆ m_compaction

std::shared_future<void> CCoinsViewDB::m_compaction
protected

Definition at line 44 of file txdb.h.

◆ m_db

std::unique_ptr<CDBWrapper> CCoinsViewDB::m_db
protected

Definition at line 43 of file txdb.h.

◆ m_db_mutex

Mutex CCoinsViewDB::m_db_mutex
protected

Prevents CompactFull() from using m_db while ResizeCache() replaces it.

Definition at line 42 of file txdb.h.

◆ m_db_params

DBParams CCoinsViewDB::m_db_params
protected

Definition at line 39 of file txdb.h.

◆ m_options

CoinsViewOptions CCoinsViewDB::m_options
protected

Definition at line 40 of file txdb.h.


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