2

I'm working on a project to visualize the mempool and (also) check if a transaction is being ignored by miners.

I have my own mining queue, to compare "my first block" with the block that has been mined. Comparing that block with mine I can take many statistics about weather a miner is choosing the best txs and/or is behaving correctly.

Project is currently in development and I have the backend more or less complete. Front-End is incomplete. So sorry if I can give you a link to it.

Today I've found that tx c3f92fe9ec20218a8c3d38b4852c9a88779d3128abdd43ac8c249207d8d3b530 has been ignored 86 times until now. And currently It's the first transaction that should be mined with 786 sat/VByte.

My bitcoin node shows that this transaction entered my mempool 20 hours ago. It's a short transaction with only 764 weight units, one input, one output, 0.24 bitcoins. Nothing special?

Also, my bitcoin node is using the tor network.

The transaction does not appear in known blockchain explorers so it seems that it has not been relayed properly. The transaction has bip125 enabled, so it could be that the person or entity broadcasting that transaction had increased many times the transaction fee.

So I'm wondering what is happening with this transaction. Anybody out there has any idea?

Maybe bitcoin nodes in tor network has poor conectivity with miners?

FYI: These are the blocks who has ignored the transaction up to date:

height: 654568,
totalTxNumMined: 2762,
postitionInQueue: 5
},
{
height: 654569,
totalTxNumMined: 2746,
postitionInQueue: 4
},
{
height: 654570,
totalTxNumMined: 2177,
postitionInQueue: 1
},
{
height: 654571,
totalTxNumMined: 3044,
postitionInQueue: 2
},
{
height: 654572,
totalTxNumMined: 2824,
postitionInQueue: 0
},
{
height: 654574,
totalTxNumMined: 0,
postitionInQueue: 1
},
{
height: 654575,
totalTxNumMined: 2706,
postitionInQueue: 3
},
{
height: 654576,
totalTxNumMined: 2515,
postitionInQueue: 0
},
{
height: 654578,
totalTxNumMined: 3141,
postitionInQueue: 3
},
{
height: 654579,
totalTxNumMined: 3040,
postitionInQueue: 6
},
{
height: 654580,
totalTxNumMined: 2501,
postitionInQueue: 0
},
{
height: 654581,
totalTxNumMined: 2399,
postitionInQueue: 1
},
{
height: 654582,
totalTxNumMined: 2889,
postitionInQueue: 1
},
{
height: 654583,
totalTxNumMined: 2098,
postitionInQueue: 1
},
{
height: 654584,
totalTxNumMined: 2973,
postitionInQueue: 5
},
{
height: 654585,
totalTxNumMined: 2135,
postitionInQueue: 4
},
{
height: 654586,
totalTxNumMined: 2451,
postitionInQueue: 6
},
{
height: 654587,
totalTxNumMined: 2312,
postitionInQueue: 8
},
{
height: 654588,
totalTxNumMined: 2614,
postitionInQueue: 5
},
{
height: 654589,
totalTxNumMined: 2946,
postitionInQueue: 2
},
{
height: 654590,
totalTxNumMined: 3170,
postitionInQueue: 0
},
{
height: 654591,
totalTxNumMined: 2624,
postitionInQueue: 7
},
{
height: 654592,
totalTxNumMined: 2638,
postitionInQueue: 4
},
{
height: 654593,
totalTxNumMined: 2988,
postitionInQueue: 0
},
{
height: 654594,
totalTxNumMined: 2781,
postitionInQueue: 11
},
{
height: 654595,
totalTxNumMined: 2486,
postitionInQueue: 3
},
{
height: 654596,
totalTxNumMined: 2423,
postitionInQueue: 0
},
{
height: 654597,
totalTxNumMined: 2526,
postitionInQueue: 0
},
{
height: 654598,
totalTxNumMined: 2973,
postitionInQueue: 1
},
{
height: 654599,
totalTxNumMined: 2866,
postitionInQueue: 0
},
{
height: 654600,
totalTxNumMined: 2910,
postitionInQueue: 10
},
{
height: 654601,
totalTxNumMined: 1814,
postitionInQueue: 0
},
{
height: 654602,
totalTxNumMined: 2642,
postitionInQueue: 0
},
{
height: 654603,
totalTxNumMined: 2572,
postitionInQueue: 0
},
{
height: 654604,
totalTxNumMined: 2068,
postitionInQueue: 0
},
{
height: 654605,
totalTxNumMined: 2300,
postitionInQueue: 1
},
{
height: 654606,
totalTxNumMined: 1911,
postitionInQueue: 3
},
{
height: 654607,
totalTxNumMined: 2503,
postitionInQueue: 0
},
{
height: 654608,
totalTxNumMined: 2060,
postitionInQueue: 1
},
{
height: 654609,
totalTxNumMined: 1666,
postitionInQueue: 5
},
{
height: 654610,
totalTxNumMined: 2241,
postitionInQueue: 1
},
{
height: 654611,
totalTxNumMined: 1947,
postitionInQueue: 0
},
{
height: 654612,
totalTxNumMined: 1496,
postitionInQueue: 0
},
{
height: 654613,
totalTxNumMined: 2140,
postitionInQueue: 4
},
{
height: 654614,
totalTxNumMined: 2460,
postitionInQueue: 0
},
{
height: 654615,
totalTxNumMined: 1338,
postitionInQueue: 2
},
{
height: 654616,
totalTxNumMined: 2320,
postitionInQueue: 0
},
{
height: 654617,
totalTxNumMined: 2394,
postitionInQueue: 2
},
{
height: 654618,
totalTxNumMined: 2630,
postitionInQueue: 1
},
{
height: 654619,
totalTxNumMined: 2858,
postitionInQueue: 0
},
{
height: 654620,
totalTxNumMined: 2097,
postitionInQueue: 0
},
{
height: 654621,
totalTxNumMined: 2856,
postitionInQueue: 5
},
{
height: 654622,
totalTxNumMined: 2379,
postitionInQueue: 1
},
{
height: 654623,
totalTxNumMined: 2585,
postitionInQueue: 5
},
{
height: 654624,
totalTxNumMined: 2434,
postitionInQueue: 2
},
{
height: 654625,
totalTxNumMined: 2032,
postitionInQueue: 6
},
{
height: 654626,
totalTxNumMined: 2667,
postitionInQueue: 4
},
{
height: 654627,
totalTxNumMined: 2521,
postitionInQueue: 1
},
{
height: 654628,
totalTxNumMined: 2662,
postitionInQueue: 1
},
{
height: 654629,
totalTxNumMined: 2313,
postitionInQueue: 1
},
{
height: 654630,
totalTxNumMined: 1995,
postitionInQueue: 0
},
{
height: 654631,
totalTxNumMined: 2330,
postitionInQueue: 0
},
{
height: 654632,
totalTxNumMined: 2588,
postitionInQueue: 0
},
{
height: 654633,
totalTxNumMined: 2775,
postitionInQueue: 3
},
{
height: 654634,
totalTxNumMined: 2604,
postitionInQueue: 0
},
{
height: 654635,
totalTxNumMined: 2135,
postitionInQueue: 0
},
{
height: 654636,
totalTxNumMined: 2540,
postitionInQueue: 2
},
{
height: 654637,
totalTxNumMined: 2244,
postitionInQueue: 0
},
{
height: 654638,
totalTxNumMined: 1231,
postitionInQueue: 1
},
{
height: 654639,
totalTxNumMined: 2367,
postitionInQueue: 1
},
{
height: 654640,
totalTxNumMined: 2370,
postitionInQueue: 0
},
{
height: 654641,
totalTxNumMined: 2935,
postitionInQueue: 4
},
{
height: 654642,
totalTxNumMined: 2453,
postitionInQueue: 1
},
{
height: 654643,
totalTxNumMined: 2414,
postitionInQueue: 0
},
{
height: 654644,
totalTxNumMined: 3102,
postitionInQueue: 6
},
{
height: 654645,
totalTxNumMined: 3211,
postitionInQueue: 5
},
{
height: 654646,
totalTxNumMined: 2561,
postitionInQueue: 0
},
{
height: 654648,
totalTxNumMined: 1931,
postitionInQueue: 10
},
{
height: 654649,
totalTxNumMined: 2578,
postitionInQueue: 2
},
{
height: 654650,
totalTxNumMined: 2588,
postitionInQueue: 0
},
{
height: 654651,
totalTxNumMined: 3038,
postitionInQueue: 7
},
{
height: 654652,
totalTxNumMined: 1305,
postitionInQueue: 0
},
{
height: 654653,
totalTxNumMined: 2260,
postitionInQueue: 3
},
{
height: 654654,
totalTxNumMined: 2627,
postitionInQueue: 1
},
{
height: 654655,
totalTxNumMined: 1980,
postitionInQueue: 2
},
{
height: 654656,
totalTxNumMined: 2645,
postitionInQueue: 0
},
{
height: 654658,
totalTxNumMined: 2861,
postitionInQueue: 5
}```
9
  • 1
    Is it possible that the transaction depending on unconfirmed inputs? It would help if you provided the full transaction, especially its input set. – Murch Oct 30 '20 at 19:06
  • No, the transaction was not dependant on any other, (my project even draw a graph of txs dependencies). but sadly I've had to delete mempool.dat of my mempool node since my algorithm was not performing fine under the big mempool of last days, the cpu was 100%, and my computer was stuck. Anyway I'll be monitoring the mempool next days. If I found any other Txs. I'll let you know. By the way I'll read your Master Thesis next days. ;-) Thanks. – jramos Oct 31 '20 at 20:03
  • I agree with Chytrik, my first bunch would also expect some other issue at play. I'll be curious to hear about it when you find another. – Murch Oct 31 '20 at 20:56
  • fa0dee70658fd00d6d205f673e79e3481cdba57100db576f2a7a308591a1c5e0 does not appear in mempool.observer nor blockstream.info or mempool.space Pays 64 sat/VByte which is now enough to be mined. Has been ignored 14 times from block 655212 to 655227 by miners: huobi, bitdeer, 1thash&58coin, poolin, antpool, f2pool, btc.com and binance. – jramos Nov 3 '20 at 12:18
  • Depends on txs: b6bc98c8d29893f2a6e04fa3bd84f60958293739dbec0af8670c446247c3c923, 23dff917408de07b05762ceb3ebe90b07889e5da6ed74d8f4d607d3bae20705e, 414ba5ca29d582452d101a26c944b2a8ffa3e0c6407215ca0ef08c9d5dd3e0d8, f9d4f7cc3cae21da8ed864654db405dcbc90a43e811ebafa999aa83c1ec323c9, 0020bc825433a7f085afcd3288f6eb7868b806bb9efa6461ad1e7e1f2b733138 each one been confirmed 30000 blocks ago... – jramos Nov 3 '20 at 12:25
2

Regarding to the second transaction: It seems that it's a replacement for another transaction: https://blockchair.com/bitcoin/transaction/3791f433180a6807695da26e1c0b7f7328a15cbe727ad4ce7c7acbc18b77c5a0 but it does not allows replacement by bip 125.

As I'm stopping my development node when needed, it seems that this transaction was not in my node before receiving the second one (fa0dee70658fd00d6d205f673e79e3481cdba57100db576f2a7a308591a1c5e0). So it was accepted. The other node I have (pi4) rejects that transaction because its online all the time, and had tx 3791f433180a6807695da26e1c0b7f7328a15cbe727ad4ce7c7acbc18b77c5a0 before.

In brief: Some people/program was sending a replacement for a transaction which does not allow it and my node took it as the original.

Thanks a lot @Murch

2
  • 1
    Right, the original transaction had set all its nSequence numbers to final, so it was not marked for replacement. Therefore the replacement got ignored per the first-seen-safe rule. To read more see bitcoin.stackexchange.com/a/49518/5406 – Murch Nov 3 '20 at 18:25
  • For anyone wondering how to seach for transaction outputs in the mempool: blockchair.com has a beta API which allows some queries by value or address. blockchair.com/api/docs#link_400 – jramos Nov 7 '20 at 9:11
1

I've checked my node, and it has no evidence of transaction c3f92fe9ec20218a8c3d38b4852c9a88779d3128abdd43ac8c249207d8d3b530.

Additionally, I checked a couple of block explorer websites, and none of them show any result for this transaction.

So it seems that this transaction was either not relayed through the wider network, or it was dropped by network nodes for some reason (network fees have been very high, some mempools might be hitting their memory limits). Without additional information, it is not possible to know.

Generally, we wouldn't expect all miners to ignore a high-fee-rate transaction, so there must be some other issue at play.

1

I'm looking into the second tx posted by the asker: fa0dee70658fd00d6d205f673e79e3481cdba57100db576f2a7a308591a1c5e0

It doesn't appear on any explorers. I noticed that all inputs were listed as being vout: 0, e.g. the input list states

{
  "addressIds": [
    "123h581GZtFAucMPpa3hFBCedEifaka5g9"
  ],
  "amount": 76559401,
  "txId": "f9d4f7cc3cae21da8ed864654db405dcbc90a43e811ebafa999aa83c1ec323c9",
  "coinbase": null,
  "voutIndex": 0
},

for one of the inputs.

However, the unspent was actually the sixth output (vout: 5) when it was created:

enter image description here

When I put the txhex into https://blockstream.info/testnet/tx/push, it fails with sendrawtransaction RPC error: {"code":-25,"message":"bad-txns-inputs-missingorspent"}.

enter image description here.

The transaction is invalid due to incorrectly specifying the output list position of the UTXO used in the inputs.

9
  • I'm missing something... then why that transaction is in my mempool? I thought that bitcoin nodes discards incorrect transactions. I have not generated it... I'm puzzled. – jramos Nov 3 '20 at 13:18
  • What node software are you using? – Murch Nov 3 '20 at 13:25
  • By the way there is a mistake in the json I've sent you. I'm sorry. It was taken from my program instead from bitcoin-rpc. It seems that not all vouts index are 0. but my program are not taking them correctly (I bet I have fogotten a setter somewhere) . anyway something is wrong because the hex value I've sent you is correct. – jramos Nov 3 '20 at 13:26
  • I'm using bitcoin core 0.20.1 on ubuntu – jramos Nov 3 '20 at 13:27
  • I'm getting nervous. F**k me if I've discovered a consensus bug. O_o – jramos Nov 3 '20 at 13:34

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.