Bitcoin ABC 0.30.5
P2P Digital Currency
Public Member Functions | Protected Attributes | List of all members
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)
 
bool GetCoin (const COutPoint &outpoint, Coin &coin) const override
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
bool HaveCoin (const COutPoint &outpoint) const override
 Just check whether a given outpoint is unspent. More...
 
BlockHash GetBestBlock () const override
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
std::vector< BlockHashGetHeadBlocks () const override
 Retrieve the range of blocks that may have been only partially written. More...
 
bool BatchWrite (CCoinsMap &mapCoins, const BlockHash &hashBlock, bool erase=true) override
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
CCoinsViewCursorCursor () const override
 Get a cursor to iterate over the whole state. More...
 
bool Upgrade ()
 Attempt to update from an older database format. More...
 
size_t EstimateSize () const override
 Estimate database size (0 if not implemented) More...
 
void ResizeCache (size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main)
 Dynamically alter the underlying leveldb cache size. More...
 
std::optional< fs::pathStoragePath ()
 
- Public Member Functions inherited from CCoinsView
virtual bool GetCoin (const COutPoint &outpoint, Coin &coin) const
 Retrieve the Coin (unspent transaction output) for a given outpoint. More...
 
virtual bool HaveCoin (const COutPoint &outpoint) const
 Just check whether a given outpoint is unspent. More...
 
virtual BlockHash GetBestBlock () const
 Retrieve the block hash whose state this CCoinsView currently represents. More...
 
virtual std::vector< BlockHashGetHeadBlocks () const
 Retrieve the range of blocks that may have been only partially written. More...
 
virtual bool BatchWrite (CCoinsMap &mapCoins, const BlockHash &hashBlock, bool erase=true)
 Do a bulk modification (multiple Coin changes + BestBlock change). More...
 
virtual CCoinsViewCursorCursor () const
 Get a cursor to iterate over the whole state. More...
 
virtual ~CCoinsView ()
 As we use CCoinsViews polymorphically, have a virtual destructor. More...
 
virtual size_t EstimateSize () const
 Estimate database size (0 if not implemented) More...
 

Protected Attributes

DBParams m_db_params
 
CoinsViewOptions m_options
 
std::unique_ptr< CDBWrapperm_db
 

Detailed Description

CCoinsView backed by the coin database (chainstate/)

Definition at line 65 of file txdb.h.

Constructor & Destructor Documentation

◆ CCoinsViewDB()

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

Definition at line 78 of file txdb.cpp.

Member Function Documentation

◆ BatchWrite()

bool CCoinsViewDB::BatchWrite ( CCoinsMap mapCoins,
const BlockHash hashBlock,
bool  erase = true 
)
overridevirtual

Do a bulk modification (multiple Coin changes + BestBlock change).

The passed mapCoins can be modified.

Reimplemented from CCoinsView.

Definition at line 119 of file txdb.cpp.

Here is the call graph for this function:

◆ Cursor()

CCoinsViewCursor * CCoinsViewDB::Cursor ( ) const
overridevirtual

Get a cursor to iterate over the whole state.

It seems that there are no "const iterators" for LevelDB. Since we only need read operations on it, use a const-cast to get around that restriction.

Reimplemented from CCoinsView.

Definition at line 208 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 184 of file txdb.cpp.

◆ GetBestBlock()

BlockHash CCoinsViewDB::GetBestBlock ( ) const
overridevirtual

Retrieve the block hash whose state this CCoinsView currently represents.

Reimplemented from CCoinsView.

Definition at line 103 of file txdb.cpp.

Here is the caller graph for this function:

◆ GetCoin()

bool CCoinsViewDB::GetCoin ( const COutPoint outpoint,
Coin coin 
) const
overridevirtual

Retrieve the Coin (unspent transaction output) for a given outpoint.

Returns true only when an unspent coin was found, which is returned in coin. When false is returned, coin's value is unspecified.

Reimplemented from CCoinsView.

Definition at line 95 of file txdb.cpp.

◆ GetHeadBlocks()

std::vector< BlockHash > 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 111 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.

Reimplemented from CCoinsView.

Definition at line 99 of file txdb.cpp.

◆ ResizeCache()

void CCoinsViewDB::ResizeCache ( size_t  new_cache_size)

Dynamically alter the underlying leveldb cache size.

Definition at line 82 of file txdb.cpp.

◆ StoragePath()

std::optional< fs::path > CCoinsViewDB::StoragePath ( )
inline
Returns
filesystem path to on-disk storage or std::nullopt if in memory.

Definition at line 92 of file txdb.h.

Here is the caller graph for this function:

◆ Upgrade()

bool CCoinsViewDB::Upgrade ( )

Attempt to update from an older database format.

Upgrade the database from older formats.

Returns whether an error occurred.

Currently implemented: from the per-tx utxo model (0.8..0.14.x) to per-txout.

Definition at line 416 of file txdb.cpp.

Here is the call graph for this function:

Member Data Documentation

◆ m_db

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

Definition at line 69 of file txdb.h.

◆ m_db_params

DBParams CCoinsViewDB::m_db_params
protected

Definition at line 67 of file txdb.h.

◆ m_options

CoinsViewOptions CCoinsViewDB::m_options
protected

Definition at line 68 of file txdb.h.


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