![]() |
Bitcoin Core 31.99.0
P2P Digital Currency
|
CCoinsView backed by the coin database (chainstate/) More...
#include <txdb.h>
Public Member Functions | |
| CCoinsViewDB (DBParams db_params, CoinsViewOptions options) | |
| ~CCoinsViewDB () override | |
| std::optional< Coin > | GetCoin (const COutPoint &outpoint) const override |
| Retrieve the Coin (unspent transaction output) for a given outpoint. More... | |
| std::optional< Coin > | PeekCoin (const COutPoint &outpoint) const override |
| Retrieve the Coin (unspent transaction output) for a given outpoint, without caching results. More... | |
| bool | HaveCoin (const COutPoint &outpoint) const override |
| Just check whether a given outpoint is unspent. More... | |
| uint256 | GetBestBlock () const override |
| Retrieve the block hash whose state this CCoinsView currently represents. More... | |
| std::vector< uint256 > | GetHeadBlocks () const override |
| Retrieve the range of blocks that may have been only partially written. More... | |
| void | BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &block_hash) override |
| Do a bulk modification (multiple Coin changes + BestBlock change). More... | |
| std::unique_ptr< CCoinsViewCursor > | Cursor () const override |
| Get a cursor to iterate over the whole state. Implementations may return nullptr. More... | |
| bool | NeedsUpgrade () |
| Whether an unsupported database format is used. More... | |
| size_t | EstimateSize () const override |
| Estimate database size. More... | |
| void | ResizeCache (size_t new_cache_size) EXCLUSIVE_LOCKS_REQUIRED(cs_main |
| Dynamically alter the underlying leveldb cache size. More... | |
| std::shared_future< void > | CompactFullAsync () EXCLUSIVE_LOCKS_REQUIRED(cs_main |
| Perform a full compaction of the underlying LevelDB on a one-shot background thread. More... | |
| std::optional< std::string > | GetDBProperty (const std::string &property) |
| Return an underlying LevelDB property value, if available. More... | |
Public Member Functions inherited from CCoinsView | |
| virtual | ~CCoinsView ()=default |
| As we use CCoinsViews polymorphically, have a virtual destructor. More... | |
| virtual std::optional< Coin > | GetCoin (const COutPoint &outpoint) const =0 |
| Retrieve the Coin (unspent transaction output) for a given outpoint. More... | |
| virtual std::optional< Coin > | PeekCoin (const COutPoint &outpoint) const =0 |
| Retrieve the Coin (unspent transaction output) for a given outpoint, without caching results. More... | |
| virtual bool | HaveCoin (const COutPoint &outpoint) const =0 |
| Just check whether a given outpoint is unspent. More... | |
| virtual uint256 | GetBestBlock () const =0 |
| Retrieve the block hash whose state this CCoinsView currently represents. More... | |
| virtual std::vector< uint256 > | GetHeadBlocks () const =0 |
| Retrieve the range of blocks that may have been only partially written. More... | |
| virtual void | BatchWrite (CoinsViewCacheCursor &cursor, const uint256 &block_hash)=0 |
| Do a bulk modification (multiple Coin changes + BestBlock change). More... | |
| virtual std::unique_ptr< CCoinsViewCursor > | Cursor () const =0 |
| Get a cursor to iterate over the whole state. Implementations may return nullptr. More... | |
| virtual size_t | EstimateSize () const =0 |
| Estimate database size. More... | |
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. More... | |
| std::unique_ptr< CDBWrapper > | m_db |
| std::shared_future< void > | m_compaction |
CCoinsView backed by the coin database (chainstate/)
|
explicit |
|
override |
|
overridevirtual |
Do a bulk modification (multiple Coin changes + BestBlock change).
The passed cursor is used to iterate through the coins.
Implements CCoinsView.
Definition at line 122 of file txdb.cpp.
| std::shared_future< void > CCoinsViewDB::CompactFullAsync | ( | ) |
|
overridevirtual |
Get a cursor to iterate over the whole state. Implementations may return nullptr.
Implements CCoinsView.
Definition at line 240 of file txdb.cpp.
|
overridevirtual |
|
overridevirtual |
Retrieve the block hash whose state this CCoinsView currently represents.
Implements CCoinsView.
Definition at line 107 of file txdb.cpp.
Retrieve the Coin (unspent transaction output) for a given outpoint.
May populate the cache. Use PeekCoin() to perform a non-caching lookup.
Implements CCoinsView.
Definition at line 88 of file txdb.cpp.
| std::optional< std::string > CCoinsViewDB::GetDBProperty | ( | const std::string & | property | ) |
|
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.
Implements CCoinsView.
Definition at line 114 of file txdb.cpp.
|
overridevirtual |
Just check whether a given outpoint is unspent.
May populate the cache. Use PeekCoin() to perform a non-caching lookup.
Implements CCoinsView.
Definition at line 102 of file txdb.cpp.
| bool CCoinsViewDB::NeedsUpgrade | ( | ) |
Retrieve the Coin (unspent transaction output) for a given outpoint, without caching results.
Does not populate the cache. Use GetCoin() to cache the result.
Implements CCoinsView.
Definition at line 97 of file txdb.cpp.
| void CCoinsViewDB::ResizeCache | ( | size_t | new_cache_size | ) |
|
protected |
|
protected |
Prevents CompactFull() from using m_db while ResizeCache() replaces it.
|
protected |