2

Just before block 537562, I had the following transactions in my mempool:

 'a4ca904361952c8a27bcf1fd36e5bc8ccdc5d42ceb72cfba60c017fb9cbbb0e5'
 '69718e60b6e7d20d5e56e097b2de9789007fb230d0205a90a1411ef8086672a0'
 '346b93674d91bfc5b5568f7e77dc969b5c87351135a1c75d551c1418533164f2'
 'e8fddfc634f2e3d535ad81d7dce314e543047bc0281854d9eded4d107fa4f525'
 'da2fd9ed1a8ba7612b885377dc7018d8d0c35ad4cdd03a24829b9a0b8edbf123'
 '3318d59ac00f5dbdd223fcf9ab953e0eee2765b4d1d72285c33c75121e888eee'
 'fc4aea4f7f3ae94bf65c6cc23b73e594f7c849ab5f1362ac78d157cf4af8bc8a'
 '1e7b6ebefd9cd4983f598831ed8082bcdab6b7857f2d302e7d4952e4f145f8e7'
 'f0f20dcf5142895d19140b60830bd9f15b664294d8535c3dcc09ebe3398a2fa3'

These transactions simply disappeared from the mempool later without ever being mined. Why did this happen? At a time when fees are so low, I doubt they were the target of a replace-by-fee. What are the possible reasons for a mempool transaction to disappear? and is there a way to investigate what happened to these specific ones?

EDIT: these transactions had a feerate above the default minrelayfee of 1 satoshi/Byte

EDIT2: I admit that I was not aware of question How do transactions leave the memory pool? , but my question is still different. I am interested in finding out why a specific transaction has disappeared from the mempool without ever being mined. Now it's a bit late to see if the transactions that I gathered were replaceable or not (nLocktime equal to 4294967294 - 0xffffff-1 - if I am not mistaken), but I will repeat my analysis taking this into account in the future.

  • 1
    Possible duplicate of How do transactions leave the memory pool? – Pieter Wuille Aug 26 '18 at 19:32
  • Posted in old.reddit.com/r/BitcoinBeginners/comments/9afuer/… and kindly answered by /u/bitusher – Pedro Aug 26 '18 at 19:56
  • @PieterWuille I edited my question to try to explain why my question is bit different, although there is some overlap. Thanks for pointing out the other question. – Pedro Aug 26 '18 at 20:13
  • At the very least you van try resubmitting the transaction. The result may teach you something. – Pieter Wuille Aug 26 '18 at 20:16
  • Those transactions were not mine... I simply took all the mempool transactions before block 537562, and subtracted all transactions that were mined in the next 9 blocks. I was left with the transactions I posted which have disappeared from my mempool and apparently from the blockexplorer's mempools too. But yes... I can take the whole transaction info and check where the conflict is and if I don't find any conflict, resubmit it... – Pedro Aug 26 '18 at 20:20
4

Skimming the source code, I found the following reasons for a transaction to be removed from the mempool:

  • It was included in a block

  • A conflicting transaction (i.e. one which spent at least one of the same inputs) was included in a block

  • Expired: it has been in the mempool longer than the time specified by -mempoolexpiry (default 336 hours)

  • The memory pool size limit was reached (set by -maxmempool). Lowest fee transactions are removed first.

  • A blockchain reorganization occurred (i.e. a different branch of the chain became the best), and this transaction spent coins that are now immature, i.e. the block where those coins were created is no longer at least 100 blocks deep

  • A blockchain reorganization occurred, and the new chain is shorter, such that the block height mentioned in this transaction's locktime has not yet been attained

  • A blockchain reorganization occurred. Transactions from disconnected blocks have to be added to the mempool. If it's already full, in this case, oldest transactions are removed to make room (not lowest fee in this case).

  • Under replace-by-fee, it was replaced by one with a higher fee

If someone knows of others that I've missed, please edit to add them.

If we could find the transactions themselves, we might be able to guess why they were removed. For instance, maybe we could look at their inputs and see if they were spent by some other transaction. But when I looked up the first few of those transaction IDs at blockchain.info, I got no results, so it may be that the block explorers have dropped them as well.

  • Thanks for the answer, is there any resource to check for these accidental forks or blockchain reorganizations as you called it? Would like to see if anything happened during that time. – Pedro Aug 26 '18 at 19:55
  • Look in your debug.log file. – Nate Eldredge Aug 26 '18 at 19:59
  • Do you have any template text that would appear in debug.log? so I can grep it? – Pedro Aug 26 '18 at 20:02
  • I'm not sure offhand, but each new block added to the chain gives an UpdateTip message. If you see one whose height isn't one more than the previous such message, that would indicate a reorganization. – Nate Eldredge Aug 26 '18 at 20:08

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.