I can see a lot of questions posted on Reddit similar to "My transaction is not confirmed for X days. What do I do?". The most common answer is "Transactions are cleared from mempool after 2 weeks". Can anybody please explain how it is technically possible?
Say I broadcast a raw transaction through bitcoin-cli. A little later I can see it in
- My local mempool
- Blockexplorer.com
- Blockchain.info
Transaction is not confirmed due to low fee for 2+ weeks.
I check if transaction is still known to network.
- My local mempool. Transaction is not present. The reason might be not these 2 weeks, but rather my full 500mb pool where low-fee transactions are cleared due to limited space.
- Blockexplorer.com. Transaction is not present. They definitely have a bigger mempool. So 2 weeks might be the reason.
- Blockchain.info. Transaction is still known to the service. Probably not in mempool in terms of bitcoin, but somewhere in there local storage. The point is they still remember it.
So, two out of three parties forgot transaction.
The questions are:
- What stops Blockchain.info to rebroadcast my transaction to the network again so that it is back again in network mempools? It would be exactly the same as if I just broadcast my transaction for the first time, right?
- If Blockchain.info can do it, is this 2-week rule true in the first place?
- If it is true, how it is implemented on the network level? Is it some kind of agreement that we do not rebroadcast transactions that are this days old?