27
8
How does my bitcoin core client know when to drop a transaction from the memory pool?
Is it as simple as a specific period of time?
27
8
How does my bitcoin core client know when to drop a transaction from the memory pool?
Is it as simple as a specific period of time?
37
As of Bitcoin Core 0.14.0, these are the ways a transaction can leave the mempool:
-maxmempool option), and a new higher-fee transaction was accepted, evicting the bottom.Also, transactions that have left the mempool can always enter them again. For example, when they're part of the local wallet and get rebroadcast, or when they're received again over the network. Eviction does not imply a transaction is cancelled.
Since Bitcoin Core 0.14.0, the mempool is saved to disk, so it persists across restarts. In earlier versions a restart would also result in a wiped mempool.
6
There is no fixed expiration time for each node, but the default setting is 72 hours.
1
In my particular case (unconfirmed not broadcasted transaction in memory pool of bitcoin core 0.14.1) the only way to remove that transaction was to delete mempool.dat after wallet close.
So deleting mempool.dat effectively forces transactions to leave memory pool.
2How can one change the timeout? – Nick ODell – 2016-06-25T01:04:50.847
3Using -mempoolexpiry=N with N in hours. – Pieter Wuille – 2016-06-25T10:10:09.353
I think the default timeout for transactions has been increased to 14 days, right? – Murch – 2017-05-13T19:27:06.383
@Murch It seems like from 0.14, it's 14 days, according to this reddit comment.
– nopara73 – 2017-05-14T08:09:30.747@murch Will evicted (or deleted) tx by timeout enter into mempool again? – zono – 2017-05-16T15:22:49.047
@zono: Yes, if they are rebroadcast and exceed the minRelayTxFee that you require for transactions. – Murch – 2017-05-16T15:27:20.393