diff options
| author | Amiti Uttarwar <[email protected]> | 2020-01-29 08:12:59 -0800 |
|---|---|---|
| committer | Amiti Uttarwar <[email protected]> | 2020-04-23 14:42:25 -0700 |
| commit | 89eeb4a3335f8e871cc3f5286af4546dff66172a (patch) | |
| tree | 6705d43114fbd4a7d308c10a9f3ef27c0556c81f /src/txmempool.h | |
| parent | Merge #15600: lockedpool: When possible, use madvise to avoid including sensi... (diff) | |
| download | discoin-89eeb4a3335f8e871cc3f5286af4546dff66172a.tar.xz discoin-89eeb4a3335f8e871cc3f5286af4546dff66172a.zip | |
[mempool] Track "unbroadcast" transactions
- Mempool tracks locally submitted transactions (wallet or rpc)
- Transactions are removed from set when the node receives a GETDATA request
from a peer, or if the transaction is removed from the mempool.
Diffstat (limited to 'src/txmempool.h')
| -rw-r--r-- | src/txmempool.h | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/txmempool.h b/src/txmempool.h index 3dae0a04c..4bee78b8d 100644 --- a/src/txmempool.h +++ b/src/txmempool.h @@ -549,6 +549,9 @@ private: std::vector<indexed_transaction_set::const_iterator> GetSortedDepthAndScore() const EXCLUSIVE_LOCKS_REQUIRED(cs); + /** track locally submitted transactions to periodically retry initial broadcast */ + std::set<uint256> m_unbroadcast_txids GUARDED_BY(cs); + public: indirectmap<COutPoint, const CTransaction*> mapNextTx GUARDED_BY(cs); std::map<uint256, CAmount> mapDeltas; @@ -698,6 +701,21 @@ public: size_t DynamicMemoryUsage() const; + /** Adds a transaction to the unbroadcast set */ + void AddUnbroadcastTx(const uint256& txid) { + LOCK(cs); + m_unbroadcast_txids.insert(txid); + } + + /** Removes a transaction from the unbroadcast set */ + void RemoveUnbroadcastTx(const uint256& txid, const bool unchecked = false); + + /** Returns transactions in unbroadcast set */ + const std::set<uint256> GetUnbroadcastTxs() const { + LOCK(cs); + return m_unbroadcast_txids; + } + private: /** UpdateForDescendants is used by UpdateTransactionsFromBlock to update * the descendants for a single transaction that has been added to the |