Bitcoin ABC 0.30.5
P2P Digital Currency
Public Member Functions | List of all members
TxConflicting Class Reference

#include <txconflicting.h>

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

Public Member Functions

 TxConflicting ()
 
- Public Member Functions inherited from TxPool
 TxPool (const std::string &txKindIn, std::chrono::seconds expireTimeIn, std::chrono::seconds expireIntervalIn)
 
bool AddTx (const CTransactionRef &tx, NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Add a new transaction to the pool. More...
 
bool HaveTx (const TxId &txid) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Check if we already have an the transaction. More...
 
CTransactionRef GetTx (const TxId &txid) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 
std::vector< CTransactionRefGetConflictTxs (const CTransactionRef &tx) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 
CTransactionRef GetTxToReconsider (NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Extract a transaction from a peer's work set. More...
 
int EraseTx (const TxId &txid) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase a tx by txid. More...
 
void EraseForPeer (NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase all txs announced by a peer (eg, after that peer disconnects) More...
 
void EraseForBlock (const CBlock &block) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase all txs included in or invalidated by a new block. More...
 
unsigned int LimitTxs (unsigned int max_txs, FastRandomContext &rng) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Limit the txs to the given maximum. More...
 
void AddChildrenToWorkSet (const CTransaction &tx) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Add any tx that list a particular tx as a parent into the from peer's work set. More...
 
bool HaveTxToReconsider (NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Does this peer have any work to do? More...
 
std::vector< CTransactionRefGetChildrenFromSamePeer (const CTransactionRef &parent, NodeId nodeid) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Get all children that spend from this tx and were received from nodeid. More...
 
std::vector< std::pair< CTransactionRef, NodeId > > GetChildrenFromDifferentPeer (const CTransactionRef &parent, NodeId nodeid) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Get all children that spend from this tx but were not received from nodeid. More...
 
size_t Size () const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Return how many entries exist in the pool. More...
 

Additional Inherited Members

- Protected Types inherited from TxPool
using PoolTxMap = decltype(m_pool_txs)
 
- Protected Member Functions inherited from TxPool
std::map< TxId, PoolTx > m_pool_txs GUARDED_BY (m_mutex)
 Map from txid to pool transaction record. More...
 
std::map< NodeId, std::set< TxId > > m_peer_work_set GUARDED_BY (m_mutex)
 Which peer provided the transactions that need to be reconsidered. More...
 
std::map< COutPoint, std::set< PoolTxMap ::iterator, IteratorComparator > > m_outpoint_to_tx_it GUARDED_BY (m_mutex)
 Index from the parents' COutPoint into the m_pool_txs. More...
 
std::vector< PoolTxMap::iterator > m_txs_list GUARDED_BY (m_mutex)
 Pool transactions in vector for quick random eviction. More...
 
int EraseTxNoLock (const TxId &txid) EXCLUSIVE_LOCKS_REQUIRED(m_mutex)
 Erase a transaction by txid. More...
 
NodeSeconds m_next_sweep GUARDED_BY (m_mutex)
 Timestamp for the next scheduled sweep of expired transactions. More...
 
- Protected Attributes inherited from TxPool
const std::string txKind
 The transaction kind as string, used for logging. More...
 
const std::chrono::seconds expireTime
 Expiration time for transactions. More...
 
const std::chrono::seconds expireInterval
 Minimum time between transactions expire time checks. More...
 
Mutex m_mutex
 Guards transactions. More...
 

Detailed Description

Definition at line 16 of file txconflicting.h.

Constructor & Destructor Documentation

◆ TxConflicting()

TxConflicting::TxConflicting ( )
inline

Definition at line 18 of file txconflicting.h.


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