2

With the blockchain experiencing extremely high transaction volumes (most blocks at the 1MB size limit), I am interested in studying the "backlog" of transactions in the memory pool on my own full node. In order to make such an analysis meaningful, I want only "honest" transactions in my mempool (loosely defined as: transactions that should be mined someday).

I've tried adjusting minrelaytxfee to 0.0001, but I find that TONS of "unqualified" transactions build up in my mempool. Here is a representative transaction: effec9299f18314a7a13e525a7bdbaa9316be9d9cac9d082078ae325fff30500

That transaction is 14,799 bytes (100+ infinitesimal inputs) with a fee of 0.15 mBTC. At the risk of stating the obvious, that transaction should NOT pass a minrelaytxfee of 0.1 mBTC/KB. My mempool collects ~1000 transaction per day that are VERY similar to the one cited above.

Also at the risk of stating the obvious, these transactions are NEVER mined.

QUESTION #1: how do these transactions "fool" the minrelaytxfee test?

QUESTION #2: is there a better mechanism for filtering out such transactions?

QUESTION #4: might these transactions originate on "my" SPV clients?

QUESTION #3: are these transactions SPAM or something else?

Thanks for the insight.

UPDATE ----------

For debugging purposes only, I increased minrelaytxfee to 0.0002 and re-started my Bitcoin Core full node.

Observation: on the vast majority of transactions, minrelaytxfee is applied correctly. In other words, transactions will a fee lower than 0.2 mBTC/KB are not added to my mempool.

I continue to get ~250 transactions/hour that somehow "fool" the minrelaytxfee filter. Here are three representative transactions:

c299d3bd4e79590bf5d5b9cfb1f3db4378ffc5e9e64752f6deb8134d43f54501

ffc1ad32c1d8ca496fa52e5451c6abe56003029819029de9a0f941611f942402

65871d2e0bc438d5019e606daba59d7af1a2ce3eb079e5f0e6c9e21ef8373402

All of these "foolish" transactions follow a specific template:

  • Size is between 14790 and 14810 bytes

  • Roughly 100 transaction inputs, all of exactly 0.1 mBTC

  • Transaction fee is always exactly 0.15 mBTC

QUESTION: how are these transactions fooling the minrelaytxfee filter?

Tracing a large sample of the 0.1 mBTC transaction inputs, they are always produced by a transaction that follows its own specific template:

  • A single transaction input

  • Roughly 100 transaction outputs, all but one of exactly 0.1 mBTC

QUESTION: Am I correct in suggesting that this pattern appears suspicious and deliberate?

9
  • 2
    What software and version are you using for your full node, and how are you setting the minrelayfee? It has a fee of slightly above 0.01mBTC/KB, which is the default min relay fee of many recent Bitcoin Core versions. Perhaps you made a typo in the config setting, and it remained at the default? Commented Jun 10, 2016 at 7:44
  • I am running Bitcoin Core 0.12.0.
    – Pressed250
    Commented Jun 10, 2016 at 14:45
  • Ok, now the other question: how are you setting the min relay fee exactly (command-line option, which? config file entry, which?) Commented Jun 10, 2016 at 14:46
  • I added the following line to bitcoin.conf: minrelaytxfee=0.0001
    – Pressed250
    Commented Jun 10, 2016 at 14:46
  • Did you restart bitcoind after adding that line? Commented Jun 10, 2016 at 14:48

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.