Author

Topic: minrelaytxfee vs mintxfee (Read 794 times)

staff
Activity: 4284
Merit: 8808
July 26, 2017, 06:22:26 PM
#6
Funny thing is that limitfreerelay setting has a non-zero default,
Not as of 0.14.0 it didn't-- and as achow noted all the code for it is gone in the development branch.

Even before it was set to zero though it wasn't very effective, because peers send a fee filter to communicate the minimum feerate they'd accept and increment their minimum acceptance fee when their mempools filled.  
staff
Activity: 3458
Merit: 6793
Just writing some code
July 26, 2017, 05:32:40 PM
#5
I'm fairly sure that the so-called "priority" system has been (or is due to be) deprecated...
Not only is it deprecated, it has also been entirely removed in Bitcoin Core 0.15.0 which will be released in a month or two.
HCP
legendary
Activity: 2086
Merit: 4363
full member
Activity: 266
Merit: 101
July 26, 2017, 02:06:04 PM
#3
Thanks. I think I get it know (at least I hope so):
  • for creating transaction, transaction fee has to be > max(minrelaytxfee; mintxfee)
  • for relaying transaction, transaction fee has to be > minrelaytxfee

Now, if and only if a transaction satisfies all the conditions necessary to be considered high priority, it is relayed even if it has transactions fees that are smaller than minrelaytxfee setting. And one can cap the number of high priority transactions relayed by the node using limirelayfree setting.

Funny thing is that limitfreerelay setting has a non-zero default, but blockprioritysize has zero default value. So using default settings, high priority transaction can be relayed but not mined.
HCP
legendary
Activity: 2086
Merit: 4363
July 25, 2017, 11:31:35 AM
#2
minrelaytxfee is used to define what the minimum fee should be on a transaction for your node to relay it...

mintxfee is the minimum fee that the client will create a transaction with...

So, if minrelaytxfee is set to 0.00001 your node will happily relay any transactions with that fee or higher (ie. yours and other peoples txes)... however, if you then set mintxfee to 0.00005, then any transaction you create will have that value as the minimum possible fee, but you'll still relay other peoples txes with fees of only 0.00001.

As for minrelayfee and limitfreerelay... you'll see the reasoning if you read here: https://en.bitcoin.it/wiki/Transaction_fees#Relaying

minrelayfee is effectively the "free" level... but relaying rules don't include the 0.01 BTC output minimum requirement (refer: https://en.bitcoin.it/wiki/Transaction_fees#Historic_rules_for_free_transactions).... so, to prevent a DoS attack of a bunch of transactions with tiny outputs and with the minrelayfee, you can set limitfreerelay and your node will only relay X thousand bytes per minute to throttle any spam
full member
Activity: 266
Merit: 101
July 25, 2017, 10:21:54 AM
#1
I have some trouble with figuring out how bitcoin minimum transaction fees work. Could someone please explain me the difference between minrelaytxfee and mintxfee setting? I get that minrelaytxfee set the minimum transaction fee for relaying transactions across the network. What I don’t get is what mintxfee does. Is it a separate settings that sets the threshold for creating/broadcasting transaction? If so, doesn’t the minimum fee for broadcasting also depend minrelaytxfee? If so, why there are actually two separate settings being used?

And what about miners: which setting do they use to set the threshold for including transactions into the block?

Also, if  minrelaytxfee != 0, why there is non-zero defualt value in the limitfreerelay setting?
Jump to: