Bitcoin ABC 0.26.3
P2P Digital Currency
|
CoinStatsIndex maintains statistics on the UTXO set. More...
#include <coinstatsindex.h>
Public Member Functions | |
CoinStatsIndex (size_t n_cache_size, bool f_memory=false, bool f_wipe=false) | |
std::optional< kernel::CCoinsStats > | LookUpStats (const CBlockIndex *block_index) const |
Public Member Functions inherited from BaseIndex | |
virtual | ~BaseIndex () |
Destructor interrupts sync thread if running and blocks until it exits. | |
bool BlockUntilSyncedToCurrentChain() const LOCKS_EXCLUDED(void | Interrupt () |
Blocks the current thread until the index is caught up to the current state of the block chain. | |
bool | Start (Chainstate &active_chainstate) |
Start initializes the sync state and registers the instance as a ValidationInterface so that it stays in sync with blockchain updates. | |
void | Stop () |
Stops the instance from staying in sync with blockchain updates. | |
IndexSummary | GetSummary () const |
Get a summary of the index and its state. | |
Protected Member Functions | |
bool | Init () override |
Initialize internal state from the database and block index. | |
bool | CommitInternal (CDBBatch &batch) override |
Virtual method called internally by Commit that can be overridden to atomically commit more index state. | |
bool | WriteBlock (const CBlock &block, const CBlockIndex *pindex) override |
Write update index entries for a newly connected block. | |
bool | Rewind (const CBlockIndex *current_tip, const CBlockIndex *new_tip) override |
Rewind index to an earlier chain tip during a chain reorg. | |
BaseIndex::DB & | GetDB () const override |
const char * | GetName () const override |
Get the name of the index for display in logs. | |
Protected Member Functions inherited from BaseIndex | |
void | BlockConnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) override |
Notifies listeners of a block being connected. | |
void | ChainStateFlushed (const CBlockLocator &locator) override |
Notifies listeners of the new active block chain on-disk. | |
const CBlockIndex * | CurrentIndex () |
void | SetBestBlockIndex (const CBlockIndex *block) |
Update the internal best block index as well as the prune lock. | |
Protected Member Functions inherited from CValidationInterface | |
~CValidationInterface ()=default | |
Protected destructor so that instances can only be deleted by derived classes. | |
virtual void | UpdatedBlockTip (const CBlockIndex *pindexNew, const CBlockIndex *pindexFork, bool fInitialDownload) |
Notifies listeners when the block chain tip advances. | |
virtual void | TransactionAddedToMempool (const CTransactionRef &tx, std::shared_ptr< const std::vector< Coin > > spent_coins, uint64_t mempool_sequence) |
Notifies listeners of a transaction having been added to mempool. | |
virtual void | TransactionRemovedFromMempool (const CTransactionRef &tx, MemPoolRemovalReason reason, uint64_t mempool_sequence) |
Notifies listeners of a transaction leaving mempool. | |
virtual void | BlockDisconnected (const std::shared_ptr< const CBlock > &block, const CBlockIndex *pindex) |
Notifies listeners of a block being disconnected. | |
virtual void | BlockChecked (const CBlock &, const BlockValidationState &) |
Notifies listeners of a block validation result. | |
virtual void | NewPoWValidBlock (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
Notifies listeners that a block which builds directly on our current tip has been received and connected to the headers tree, though not validated yet. | |
virtual void | BlockFinalized (const CBlockIndex *pindex) |
virtual void | BlockInvalidated (const CBlockIndex *pindex, const std::shared_ptr< const CBlock > &block) |
Private Member Functions | |
bool | ReverseBlock (const CBlock &block, const CBlockIndex *pindex) |
bool | AllowPrune () const override |
Private Attributes | |
std::string | m_name |
std::unique_ptr< BaseIndex::DB > | m_db |
MuHash3072 | m_muhash |
uint64_t | m_transaction_output_count {0} |
uint64_t | m_bogo_size {0} |
Amount | m_total_amount {Amount::zero()} |
Amount | m_total_subsidy {Amount::zero()} |
Amount | m_total_unspendable_amount {Amount::zero()} |
Amount | m_total_prevout_spent_amount {Amount::zero()} |
Amount | m_total_new_outputs_ex_coinbase_amount {Amount::zero()} |
Amount | m_total_coinbase_amount {Amount::zero()} |
Amount | m_total_unspendables_genesis_block {Amount::zero()} |
Amount | m_total_unspendables_bip30 {Amount::zero()} |
Amount | m_total_unspendables_scripts {Amount::zero()} |
Amount | m_total_unspendables_unclaimed_rewards {Amount::zero()} |
Additional Inherited Members | |
Protected Attributes inherited from BaseIndex | |
Chainstate * | m_chainstate {nullptr} |
CoinStatsIndex maintains statistics on the UTXO set.
Definition at line 21 of file coinstatsindex.h.
|
inlineoverrideprivatevirtual |
Implements BaseIndex.
Definition at line 42 of file coinstatsindex.h.
Virtual method called internally by Commit that can be overridden to atomically commit more index state.
Reimplemented from BaseIndex.
Definition at line 427 of file coinstatsindex.cpp.
|
inlineoverrideprotectedvirtual |
Implements BaseIndex.
Definition at line 54 of file coinstatsindex.h.
|
inlineoverrideprotectedvirtual |
Get the name of the index for display in logs.
Implements BaseIndex.
Definition at line 56 of file coinstatsindex.h.
|
overrideprotectedvirtual |
Initialize internal state from the database and block index.
Reimplemented from BaseIndex.
Definition at line 373 of file coinstatsindex.cpp.
std::optional< CCoinsStats > CoinStatsIndex::LookUpStats | ( | const CBlockIndex * | block_index | ) | const |
|
private |
Definition at line 435 of file coinstatsindex.cpp.
|
overrideprotectedvirtual |
Rewind index to an earlier chain tip during a chain reorg.
The tip must be an ancestor of the current best block.
Reimplemented from BaseIndex.
Definition at line 282 of file coinstatsindex.cpp.
|
overrideprotectedvirtual |
Write update index entries for a newly connected block.
Reimplemented from BaseIndex.
Definition at line 113 of file coinstatsindex.cpp.
|
private |
Definition at line 28 of file coinstatsindex.h.
|
private |
Definition at line 24 of file coinstatsindex.h.
|
private |
Definition at line 26 of file coinstatsindex.h.
|
private |
Definition at line 23 of file coinstatsindex.h.
|
private |
Definition at line 29 of file coinstatsindex.h.
|
private |
Definition at line 34 of file coinstatsindex.h.
|
private |
Definition at line 33 of file coinstatsindex.h.
|
private |
Definition at line 32 of file coinstatsindex.h.
|
private |
Definition at line 30 of file coinstatsindex.h.
|
private |
Definition at line 31 of file coinstatsindex.h.
|
private |
Definition at line 36 of file coinstatsindex.h.
|
private |
Definition at line 35 of file coinstatsindex.h.
|
private |
Definition at line 37 of file coinstatsindex.h.
|
private |
Definition at line 38 of file coinstatsindex.h.
|
private |
Definition at line 27 of file coinstatsindex.h.