Bitcoin ABC 0.26.3
P2P Digital Currency
Loading...
Searching...
No Matches
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.
 
bool HaveTx (const TxId &txid) const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Check if we already have an the transaction.
 
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.
 
int EraseTx (const TxId &txid) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase a tx by txid.
 
void EraseForPeer (NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase all txs announced by a peer (eg, after that peer disconnects)
 
void EraseForBlock (const CBlock &block) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Erase all txs included in or invalidated by a new block.
 
unsigned int LimitTxs (unsigned int max_txs, FastRandomContext &rng) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Limit the txs to the given maximum.
 
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.
 
bool HaveTxToReconsider (NodeId peer) EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Does this peer have any work to do?
 
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.
 
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.
 
size_t Size () const EXCLUSIVE_LOCKS_REQUIRED(!m_mutex)
 Return how many entries exist in the pool.
 

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.
 
std::map< NodeId, std::set< TxId > > m_peer_work_set GUARDED_BY (m_mutex)
 Which peer provided the transactions that need to be reconsidered.
 
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.
 
std::vector< PoolTxMap::iterator > m_txs_list GUARDED_BY (m_mutex)
 Pool transactions in vector for quick random eviction.
 
int EraseTxNoLock (const TxId &txid) EXCLUSIVE_LOCKS_REQUIRED(m_mutex)
 Erase a transaction by txid.
 
NodeSeconds m_next_sweep GUARDED_BY (m_mutex)
 Timestamp for the next scheduled sweep of expired transactions.
 
- Protected Attributes inherited from TxPool
const std::string txKind
 The transaction kind as string, used for logging.
 
const std::chrono::seconds expireTime
 Expiration time for transactions.
 
const std::chrono::seconds expireInterval
 Minimum time between transactions expire time checks.
 
Mutex m_mutex
 Guards transactions.
 

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: