From 9567eaa66da88a79c54f7a77922d817862122af2 Mon Sep 17 00:00:00 2001 From: Suhas Daftuar Date: Tue, 29 Jul 2025 16:16:18 -0400 Subject: [PATCH] Invoke TxGraph::DoWork() at appropriate times --- src/txmempool.cpp | 3 +++ src/txmempool.h | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/txmempool.cpp b/src/txmempool.cpp index 597d4864094..5197fb012df 100644 --- a/src/txmempool.cpp +++ b/src/txmempool.cpp @@ -211,6 +211,7 @@ void CTxMemPool::Apply(ChangeSet* changeset) addNewTransaction(it); } + m_txgraph->DoWork(POST_CHANGE_WORK); } void CTxMemPool::addNewTransaction(CTxMemPool::txiter newit) @@ -357,6 +358,7 @@ void CTxMemPool::removeForReorg(CChain& chain, std::function check for (indexed_transaction_set::const_iterator it = mapTx.begin(); it != mapTx.end(); it++) { assert(TestLockPointValidity(chain, it->GetLockPoints())); } + m_txgraph->DoWork(POST_CHANGE_WORK); } void CTxMemPool::removeConflicts(const CTransaction &tx) @@ -401,6 +403,7 @@ void CTxMemPool::removeForBlock(const std::vector& vtx, unsigne } lastRollingFeeUpdate = GetTime(); blockSinceLastRollingFeeBump = true; + m_txgraph->DoWork(POST_CHANGE_WORK); } void CTxMemPool::check(const CCoinsViewCache& active_coins_tip, int64_t spendheight) const diff --git a/src/txmempool.h b/src/txmempool.h index e2020b65260..a3487c04ea4 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -55,6 +55,10 @@ static const uint32_t MEMPOOL_HEIGHT = 0x7FFFFFFF; * iterations. */ static constexpr uint64_t ACCEPTABLE_ITERS = 1'700; +/** How much work we ask TxGraph to do after a mempool change occurs (either + * due to a changeset being applied, a new block being found, or a reorg). */ +static constexpr uint64_t POST_CHANGE_WORK = 5 * ACCEPTABLE_ITERS; + /** * Test whether the LockPoints height and time are still valid on the current chain */