Bitcoin ABC 0.30.3
P2P Digital Currency
|
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the next block. More...
#include <txmempool.h>
Public Types | |
typedef boost::multi_index_container< CTxMemPoolEntryRef, boost::multi_index::indexed_by< boost::multi_index::hashed_unique< mempoolentry_txid, SaltedTxIdHasher >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< modified_feerate >, boost::multi_index::identity< CTxMemPoolEntryRef >, CompareTxMemPoolEntryByModifiedFeeRate >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< entry_time >, boost::multi_index::identity< CTxMemPoolEntryRef >, CompareTxMemPoolEntryByEntryTime >, boost::multi_index::ordered_unique< boost::multi_index::tag< entry_id >, boost::multi_index::identity< CTxMemPoolEntryRef >, CompareTxMemPoolEntryByEntryId > > > | indexed_transaction_set |
using | txiter = indexed_transaction_set::nth_index< 0 >::type::const_iterator |
typedef std::set< txiter, CompareIteratorById > | setEntries |
typedef std::set< txiter, CompareIteratorByRevEntryId > | setRevTopoEntries |
using | Options = kernel::MemPoolOptions |
Public Member Functions | |
indexed_transaction_set mapTx | GUARDED_BY (cs) |
indirectmap< COutPoint, CTransactionRef > mapNextTx | GUARDED_BY (cs) |
std::map< TxId, Amount > mapDeltas | GUARDED_BY (cs) |
CTxMemPool (const Options &opts) | |
Create a new CTxMemPool. More... | |
~CTxMemPool () | |
void | removeRecursive (const CTransaction &tx, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs) |
void | removeConflicts (const CTransaction &tx) EXCLUSIVE_LOCKS_REQUIRED(cs) |
void | updateFeeForBlock () EXCLUSIVE_LOCKS_REQUIRED(cs) |
Called when a block is connected. More... | |
void | removeForFinalizedBlock (const std::vector< CTransactionRef > &vtx) EXCLUSIVE_LOCKS_REQUIRED(cs) |
void | clear () |
void | _clear () EXCLUSIVE_LOCKS_REQUIRED(cs) |
bool | CompareTopologically (const TxId &txida, const TxId &txidb) const |
void | getAllTxIds (std::vector< TxId > &vtxid) const |
bool | isSpent (const COutPoint &outpoint) const |
unsigned int | GetTransactionsUpdated () const |
void | AddTransactionsUpdated (unsigned int n) |
bool | HasNoInputsOf (const CTransaction &tx) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Check that none of this transactions inputs are in the mempool, and thus the tx is not dependent on other mempool transactions to be included in a block. More... | |
void | PrioritiseTransaction (const TxId &txid, const Amount nFeeDelta) |
Affect CreateNewBlock prioritisation of transactions. More... | |
void | ApplyDelta (const TxId &txid, Amount &nFeeDelta) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
void | ClearPrioritisation (const TxId &txid) EXCLUSIVE_LOCKS_REQUIRED(cs) |
CTransactionRef | GetConflictTx (const COutPoint &prevout) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Get the transaction in the pool that spends the same prevout. More... | |
std::optional< txiter > | GetIter (const TxId &txid) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Returns an iterator to the given txid, if found. More... | |
setEntries | GetIterSet (const std::set< TxId > &txids) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Translate a set of txids into a set of pool iterators to avoid repeated lookups. More... | |
void | RemoveStaged (const setEntries &stage, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Remove a set of transactions from the mempool. More... | |
bool | CalculateMemPoolAncestors (const CTxMemPoolEntryRef &entry, setEntries &setAncestors, bool fSearchForParents=true) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Try to calculate all in-mempool ancestors of entry. More... | |
void | CalculateDescendants (txiter it, setEntries &setDescendants) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Populate setDescendants with all in-mempool descendants of hash. More... | |
CFeeRate | GetMinFee () const |
The minimum fee to get into the mempool, which may itself not be enough for larger-sized transactions. More... | |
CFeeRate | GetMinFee (size_t sizelimit) const |
void | TrimToSize (size_t sizelimit, std::vector< COutPoint > *pvNoSpendsRemaining=nullptr) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Remove transactions from the mempool until its dynamic size is <= sizelimit. More... | |
int | Expire (std::chrono::seconds time) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Expire all transaction (and their dependencies) in the mempool older than time. More... | |
void | LimitSize (CCoinsViewCache &coins_cache) EXCLUSIVE_LOCKS_REQUIRED(cs |
Reduce the size of the mempool by expiring and then trimming the mempool. More... | |
bool | GetLoadTried () const |
void | SetLoadTried (bool load_tried) |
Set whether or not we've made an attempt to load the mempool (regardless of whether the attempt was successful or not) More... | |
unsigned long | size () const |
uint64_t | GetTotalTxSize () const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Amount | GetTotalFee () const EXCLUSIVE_LOCKS_REQUIRED(cs) |
bool | exists (const TxId &txid) const |
bool | setAvalancheFinalized (const CTxMemPoolEntryRef &tx) EXCLUSIVE_LOCKS_REQUIRED(cs) |
bool | isAvalancheFinalized (const TxId &txid) const |
CTransactionRef | get (const TxId &txid) const |
TxMempoolInfo | info (const TxId &txid) const |
std::vector< TxMempoolInfo > | infoAll () const |
CFeeRate | estimateFee () const |
size_t | DynamicMemoryUsage () const |
void | AddUnbroadcastTx (const TxId &txid) |
Adds a transaction to the unbroadcast set. More... | |
void | RemoveUnbroadcastTx (const TxId &txid, const bool unchecked=false) |
Removes a transaction from the unbroadcast set. More... | |
std::set< TxId > | GetUnbroadcastTxs () const |
Returns transactions in unbroadcast set. More... | |
bool | IsUnbroadcastTx (const TxId &txid) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Returns whether a txid is in the unbroadcast set. More... | |
uint64_t | GetAndIncrementSequence () const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Guards this internal counter for external reporting. More... | |
uint64_t | GetSequence () const EXCLUSIVE_LOCKS_REQUIRED(cs) |
template<typename Callable > | |
auto | withOrphanage (Callable &&func) const EXCLUSIVE_LOCKS_REQUIRED(!cs_orphanage) |
template<typename Callable > | |
auto | withConflicting (Callable &&func) const EXCLUSIVE_LOCKS_REQUIRED(!cs_conflicting) |
Public Attributes | |
RecursiveMutex | cs |
This mutex needs to be locked when accessing mapTx or other members that are guarded by it. More... | |
RadixTree< CTxMemPoolEntry, MemPoolEntryRadixTreeAdapter > | finalizedTxs |
const int64_t | m_max_size_bytes |
const std::chrono::seconds | m_expiry |
const CFeeRate | m_min_relay_feerate |
const CFeeRate | m_dust_relay_feerate |
const bool | m_permit_bare_multisig |
const std::optional< unsigned > | m_max_datacarrier_bytes |
const bool | m_require_standard |
void check(const CCoinsViewCache &active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(void | addUnchecked (CTxMemPoolEntryRef entry) EXCLUSIVE_LOCKS_REQUIRED(cs |
If sanity-checking is turned on, check makes sure the pool is consistent (does not contain two transactions that spend the same inputs, all inputs are in the mapNextTx array). More... | |
void check(const CCoinsViewCache &active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(void | cs_main |
Static Public Attributes | |
static const int | ROLLING_FEE_HALFLIFE = 60 * 60 * 12 |
Private Member Functions | |
uint64_t totalTxSize | GUARDED_BY (cs) |
sum of all mempool tx's sizes. More... | |
Amount m_total_fee | GUARDED_BY (cs) |
sum of all mempool tx's fees (NOT modified fee) More... | |
uint64_t cachedInnerUsage | GUARDED_BY (cs) |
sum of dynamic memory usage of all the map elements (NOT the maps themselves) More... | |
int64_t lastRollingFeeUpdate | GUARDED_BY (cs) |
bool blockSinceLastRollingFeeBump | GUARDED_BY (cs) |
double rollingMinimumFeeRate | GUARDED_BY (cs) |
minimum fee to get into the pool, decreases exponentially More... | |
uint64_t m_sequence_number | GUARDED_BY (cs) |
void | trackPackageRemoved (const CFeeRate &rate) EXCLUSIVE_LOCKS_REQUIRED(cs) |
bool m_load_tried | GUARDED_BY (cs) |
uint64_t nextEntryId | GUARDED_BY (cs) |
Used by addUnchecked to generate ever-increasing CTxMemPoolEntry::entryId's. More... | |
std::unique_ptr< TxOrphanage > m_orphanage | GUARDED_BY (cs_orphanage) |
Storage for orphan information. More... | |
std::unique_ptr< TxConflicting > m_conflicting | GUARDED_BY (cs_conflicting) |
Storage for conflicting txs information. More... | |
void | UpdateParent (txiter entry, txiter parent, bool add) EXCLUSIVE_LOCKS_REQUIRED(cs) |
void | UpdateChild (txiter entry, txiter child, bool add) EXCLUSIVE_LOCKS_REQUIRED(cs) |
std::set< TxId > m_unbroadcast_txids | GUARDED_BY (cs) |
Track locally submitted transactions to periodically retry initial broadcast. More... | |
bool | CalculateAncestors (setEntries &setAncestors, CTxMemPoolEntry::Parents &staged_ancestors) const EXCLUSIVE_LOCKS_REQUIRED(cs) |
Helper function to calculate all in-mempool ancestors of staged_ancestors param@[in] staged_ancestors Should contain entries in the mempool. More... | |
void | UpdateEntryForAncestors (txiter it, const setEntries *setAncestors) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Set ancestor state for an entry. More... | |
void | UpdateParentsOf (bool add, txiter it) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Update parents of it to add/remove it as a child transaction. More... | |
void | UpdateForRemoveFromMempool (const setEntries &entriesToRemove) EXCLUSIVE_LOCKS_REQUIRED(cs) |
For each transaction being removed, update ancestors and any direct children. More... | |
void | UpdateChildrenForRemoval (txiter entry) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Sever link between specified transaction and direct children. More... | |
void | removeUnchecked (txiter entry, MemPoolRemovalReason reason) EXCLUSIVE_LOCKS_REQUIRED(cs) |
Before calling removeUnchecked for a given transaction, UpdateForRemoveFromMempool must be called on the entire (dependent) set of transactions being removed at the same time. More... | |
Private Attributes | |
const int | m_check_ratio |
Value n means that 1 times in n we check. More... | |
std::atomic< uint32_t > | nTransactionsUpdated {0} |
Used by getblocktemplate to trigger CreateNewBlock() invocation. More... | |
Mutex | cs_orphanage |
Mutex | cs_conflicting |
CTxMemPool stores valid-according-to-the-current-best-chain transactions that may be included in the next block.
Transactions are added when they are seen on the network (or created by the local node), but not all transactions seen are added to the pool. For example, the following new transactions will not be added to the mempool:
CTxMemPool::mapTx, and CTxMemPoolEntry bookkeeping:
mapTx is a boost::multi_index that sorts the mempool on 3 criteria:
Note: the term "descendant" refers to in-mempool transactions that depend on this one, while "ancestor" refers to in-mempool transactions that a given transaction depends on.
When a new transaction is added to the mempool, it has no in-mempool children (because any such children would be an orphan). So in addUnchecked(), we:
When a transaction is removed from the mempool, we must:
These happen in UpdateForRemoveFromMempool(). (Note that when removing a transaction along with its descendants, we must calculate that set of transactions to be removed before doing the removal, or else the mempool can be in an inconsistent state where it's impossible to walk the ancestors of a transaction.)
In the event of a reorg, the invariant that all newly-added tx's have no in-mempool children must be maintained. On top of this, we use a topological index (GetEntryId). As such, we always dump mempool tx's into a disconnect pool on reorg, and simply add them one by one, along with tx's from disconnected blocks, when the reorg is complete.
Definition at line 212 of file txmempool.h.
typedef boost::multi_index_container< CTxMemPoolEntryRef, boost::multi_index::indexed_by< boost::multi_index::hashed_unique<mempoolentry_txid, SaltedTxIdHasher>, boost::multi_index::ordered_non_unique< boost::multi_index::tag<modified_feerate>, boost::multi_index::identity<CTxMemPoolEntryRef>, CompareTxMemPoolEntryByModifiedFeeRate>, boost::multi_index::ordered_non_unique< boost::multi_index::tag<entry_time>, boost::multi_index::identity<CTxMemPoolEntryRef>, CompareTxMemPoolEntryByEntryTime>, boost::multi_index::ordered_unique< boost::multi_index::tag<entry_id>, boost::multi_index::identity<CTxMemPoolEntryRef>, CompareTxMemPoolEntryByEntryId> > > CTxMemPool::indexed_transaction_set |
Definition at line 278 of file txmempool.h.
Definition at line 342 of file txmempool.h.
typedef std::set<txiter, CompareIteratorById> CTxMemPool::setEntries |
Definition at line 311 of file txmempool.h.
typedef std::set<txiter, CompareIteratorByRevEntryId> CTxMemPool::setRevTopoEntries |
Definition at line 312 of file txmempool.h.
using CTxMemPool::txiter = indexed_transaction_set::nth_index<0>::type::const_iterator |
Definition at line 310 of file txmempool.h.
CTxMemPool::CTxMemPool | ( | const Options & | opts | ) |
Create a new CTxMemPool.
Sanity checks will be off by default for performance, because otherwise accepting transactions becomes O(N^2) where N is the number of transactions in the pool.
Definition at line 117 of file txmempool.cpp.
CTxMemPool::~CTxMemPool | ( | ) |
Definition at line 131 of file txmempool.cpp.
void CTxMemPool::_clear | ( | ) |
Definition at line 331 of file txmempool.cpp.
void CTxMemPool::AddTransactionsUpdated | ( | unsigned int | n | ) |
Definition at line 142 of file txmempool.cpp.
|
inline |
Adds a transaction to the unbroadcast set.
Definition at line 527 of file txmempool.h.
|
private |
Helper function to calculate all in-mempool ancestors of staged_ancestors param@[in] staged_ancestors Should contain entries in the mempool.
param@[out] setAncestors Will be populated with all mempool ancestors.
Definition at line 29 of file txmempool.cpp.
void CTxMemPool::CalculateDescendants | ( | txiter | it, |
setEntries & | setDescendants | ||
) | const |
Populate setDescendants with all in-mempool descendants of hash.
Assumes that setDescendants includes all in-mempool descendants of anything already in it.
Definition at line 235 of file txmempool.cpp.
bool CTxMemPool::CalculateMemPoolAncestors | ( | const CTxMemPoolEntryRef & | entry, |
setEntries & | setAncestors, | ||
bool | fSearchForParents = true |
||
) | const |
Try to calculate all in-mempool ancestors of entry.
(these are all calculated including the tx itself) fSearchForParents = whether to search a tx's vin for in-mempool parents, or look up parents from m_parents. Must be true for entries not in the mempool
Definition at line 56 of file txmempool.cpp.
void CTxMemPool::clear | ( | ) |
Definition at line 343 of file txmempool.cpp.
void CTxMemPool::ClearPrioritisation | ( | const TxId & | txid | ) |
Definition at line 566 of file txmempool.cpp.
Definition at line 462 of file txmempool.cpp.
size_t CTxMemPool::DynamicMemoryUsage | ( | ) | const |
Definition at line 646 of file txmempool.cpp.
CFeeRate CTxMemPool::estimateFee | ( | ) | const |
Definition at line 528 of file txmempool.cpp.
|
inline |
int CTxMemPool::Expire | ( | std::chrono::seconds | time | ) |
Expire all transaction (and their dependencies) in the mempool older than time.
Return the number of removed transactions.
Definition at line 680 of file txmempool.cpp.
CTransactionRef CTxMemPool::get | ( | const TxId & | txid | ) | const |
void CTxMemPool::getAllTxIds | ( | std::vector< TxId > & | vtxid | ) | const |
Definition at line 476 of file txmempool.cpp.
|
inline |
Guards this internal counter for external reporting.
Definition at line 552 of file txmempool.h.
CTransactionRef CTxMemPool::GetConflictTx | ( | const COutPoint & | prevout | ) | const |
Get the transaction in the pool that spends the same prevout.
Definition at line 571 of file txmempool.cpp.
std::optional< CTxMemPool::txiter > CTxMemPool::GetIter | ( | const TxId & | txid | ) | const |
Returns an iterator to the given txid, if found.
Definition at line 576 of file txmempool.cpp.
CTxMemPool::setEntries CTxMemPool::GetIterSet | ( | const std::set< TxId > & | txids | ) | const |
Translate a set of txids into a set of pool iterators to avoid repeated lookups.
Definition at line 585 of file txmempool.cpp.
bool CTxMemPool::GetLoadTried | ( | ) | const |
Definition at line 811 of file txmempool.cpp.
|
inline |
The minimum fee to get into the mempool, which may itself not be enough for larger-sized transactions.
Definition at line 451 of file txmempool.h.
CFeeRate CTxMemPool::GetMinFee | ( | size_t | sizelimit | ) | const |
|
inline |
|
inline |
Definition at line 498 of file txmempool.h.
|
inline |
Definition at line 493 of file txmempool.h.
unsigned int CTxMemPool::GetTransactionsUpdated | ( | ) | const |
|
inline |
Returns transactions in unbroadcast set.
Definition at line 540 of file txmempool.h.
|
private |
sum of all mempool tx's sizes.
sum of all mempool tx's fees (NOT modified fee)
|
private |
sum of dynamic memory usage of all the map elements (NOT the maps themselves)
|
mutableprivate |
|
mutableprivate |
|
mutableprivate |
minimum fee to get into the pool, decreases exponentially
|
inlinemutableprivate |
Definition at line 235 of file txmempool.h.
|
inlineprivate |
Definition at line 239 of file txmempool.h.
|
private |
Used by addUnchecked to generate ever-increasing CTxMemPoolEntry::entryId's.
indexed_transaction_set mapTx CTxMemPool::GUARDED_BY | ( | cs | ) |
Track locally submitted transactions to periodically retry initial broadcast.
indirectmap< COutPoint, CTransactionRef > mapNextTx CTxMemPool::GUARDED_BY | ( | cs | ) |
|
private |
Storage for conflicting txs information.
|
private |
Storage for orphan information.
bool CTxMemPool::HasNoInputsOf | ( | const CTransaction & | tx | ) | const |
Check that none of this transactions inputs are in the mempool, and thus the tx is not dependent on other mempool transactions to be included in a block.
Definition at line 596 of file txmempool.cpp.
TxMempoolInfo CTxMemPool::info | ( | const TxId & | txid | ) | const |
std::vector< TxMempoolInfo > CTxMemPool::infoAll | ( | ) | const |
Definition at line 494 of file txmempool.cpp.
|
inline |
Definition at line 513 of file txmempool.h.
bool CTxMemPool::isSpent | ( | const COutPoint & | outpoint | ) | const |
|
inline |
Returns whether a txid is in the unbroadcast set.
Definition at line 546 of file txmempool.h.
void CTxMemPool::LimitSize | ( | CCoinsViewCache & | coins_cache | ) |
Reduce the size of the mempool by expiring and then trimming the mempool.
Definition at line 699 of file txmempool.cpp.
Affect CreateNewBlock prioritisation of transactions.
Definition at line 538 of file txmempool.cpp.
void CTxMemPool::removeConflicts | ( | const CTransaction & | tx | ) |
Definition at line 293 of file txmempool.cpp.
void CTxMemPool::removeForFinalizedBlock | ( | const std::vector< CTransactionRef > & | vtx | ) |
void CTxMemPool::removeRecursive | ( | const CTransaction & | tx, |
MemPoolRemovalReason | reason | ||
) |
Definition at line 262 of file txmempool.cpp.
void CTxMemPool::RemoveStaged | ( | const setEntries & | stage, |
MemPoolRemovalReason | reason | ||
) |
Remove a set of transactions from the mempool.
If a transaction is in this set, then all in-mempool descendants must also be in the set, unless this transaction is being removed for being in a block.
Definition at line 668 of file txmempool.cpp.
void CTxMemPool::RemoveUnbroadcastTx | ( | const TxId & | txid, |
const bool | unchecked = false |
||
) |
Removes a transaction from the unbroadcast set.
Definition at line 657 of file txmempool.cpp.
|
private |
Before calling removeUnchecked for a given transaction, UpdateForRemoveFromMempool must be called on the entire (dependent) set of transactions being removed at the same time.
We use each CTxMemPoolEntry's setMemPoolParents in order to walk ancestors of a given transaction that is removed, so we can't remove intermediate transactions in a chain before we've updated all the state for the removal.
Definition at line 194 of file txmempool.cpp.
|
inline |
void CTxMemPool::SetLoadTried | ( | bool | load_tried | ) |
Set whether or not we've made an attempt to load the mempool (regardless of whether the attempt was successful or not)
Definition at line 816 of file txmempool.cpp.
|
inline |
|
private |
Definition at line 758 of file txmempool.cpp.
void CTxMemPool::TrimToSize | ( | size_t | sizelimit, |
std::vector< COutPoint > * | pvNoSpendsRemaining = nullptr |
||
) |
Remove transactions from the mempool until its dynamic size is <= sizelimit.
pvNoSpendsRemaining, if set, will be populated with the list of outpoints which are not in mempool which no longer have any spends in this mempool.
Definition at line 766 of file txmempool.cpp.
Definition at line 715 of file txmempool.cpp.
|
private |
Sever link between specified transaction and direct children.
Definition at line 91 of file txmempool.cpp.
|
private |
Set ancestor state for an entry.
void CTxMemPool::updateFeeForBlock | ( | ) |
Called when a block is connected.
Updates the miner fee estimator.
Definition at line 311 of file txmempool.cpp.
|
private |
For each transaction being removed, update ancestors and any direct children.
Definition at line 101 of file txmempool.cpp.
Definition at line 725 of file txmempool.cpp.
|
private |
Update parents of it
to add/remove it as a child transaction.
Definition at line 82 of file txmempool.cpp.
|
inline |
Definition at line 569 of file txmempool.h.
|
inline |
Definition at line 561 of file txmempool.h.
void CTxMemPool::addUnchecked |
If sanity-checking is turned on, check makes sure the pool is consistent (does not contain two transactions that spend the same inputs, all inputs are in the mapNextTx array).
If sanity-checking is turned off, check does nothing.
Definition at line 372 of file txmempool.h.
|
mutable |
This mutex needs to be locked when accessing mapTx
or other members that are guarded by it.
By design, it is guaranteed that:
cs_main
and mempool.cs
will give a view of mempool that is consistent with current chain tip (ActiveChain()
and CoinsTip()
) and is fully populated. Fully populated means that if the current active chain is missing transactions that were present in a previously active chain, all the missing transactions will have been re-added to the mempool and should be present if they meet size and consistency constraints.mempool.cs
without cs_main
will give a view of a mempool consistent with some chain that was active since cs_main
was last locked, and that is fully populated as described above. It is ok for code that only needs to query or remove transactions from the mempool to lock just mempool.cs
without cs_main
.To provide these guarantees, it is necessary to lock both cs_main
and mempool.cs
whenever adding transactions to the mempool and whenever changing the chain tip. It's necessary to keep both mutexes locked until the mempool is consistent with the new chain tip and fully populated.
Definition at line 307 of file txmempool.h.
|
mutableprivate |
Definition at line 249 of file txmempool.h.
void check(const CCoinsViewCache &active_coins_tip, int64_t spendheight) const EXCLUSIVE_LOCKS_REQUIRED(void CTxMemPool::cs_main |
Definition at line 373 of file txmempool.h.
|
mutableprivate |
Definition at line 245 of file txmempool.h.
RadixTree<CTxMemPoolEntry, MemPoolEntryRadixTreeAdapter> CTxMemPool::finalizedTxs |
Definition at line 314 of file txmempool.h.
|
private |
Value n means that 1 times in n we check.
Definition at line 215 of file txmempool.h.
const CFeeRate CTxMemPool::m_dust_relay_feerate |
Definition at line 347 of file txmempool.h.
const std::chrono::seconds CTxMemPool::m_expiry |
Definition at line 345 of file txmempool.h.
const std::optional<unsigned> CTxMemPool::m_max_datacarrier_bytes |
Definition at line 349 of file txmempool.h.
const int64_t CTxMemPool::m_max_size_bytes |
Definition at line 344 of file txmempool.h.
const CFeeRate CTxMemPool::m_min_relay_feerate |
Definition at line 346 of file txmempool.h.
const bool CTxMemPool::m_permit_bare_multisig |
Definition at line 348 of file txmempool.h.
const bool CTxMemPool::m_require_standard |
Definition at line 350 of file txmempool.h.
|
private |
Used by getblocktemplate to trigger CreateNewBlock() invocation.
Definition at line 217 of file txmempool.h.
|
static |
Definition at line 255 of file txmempool.h.