1

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?
1

What stops Blockchain.info to rebroadcast my transaction to the network again?

Nothing. Or may be laziness.

It would be exactly the same as if I just broadcast my transaction for the first time, right?

Right.

If Blockchain.info can do it, is this 2-week rule true in the first place?

Everyone can do it. And someones definitely do it. Your node will get it back after 2 weeks.

If it is true, how it is implemented on the network level?

It is not consensus rule. If you want - you have a right to rebroadcast a transaction if it is still valid [and not confirmed].

Is it some kind of agreement that we do not rebroadcast transactions that are this days old?

No.

0

There is no time embedded in a bitcoin transaction other than locktime which is the earliest a transaction can be valid. So it is fine to rebroadcast them as long as the other parts of the transaction are valid (e.g. the inputs are still unspent, properly signed, etc.)

You can validate and re-broadcast transactions on blockchain.info. If the fees are low you might try a transaction accelerator to see if you can get someone to mine it anyway.

For example try creating an account at AntPool (free) and using their accelerator here.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.