Bitcoin Forum
December 14, 2024, 05:11:20 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: why transactions with zero fee are preferred above one with 0.000139 fee?  (Read 1023 times)
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 09, 2014, 05:51:59 PM
 #1

I have a transaction pending in the mempool since hours because it pays less fee than required, not zero. The fee should be 0.0002 but it pays 0.000139.

I would understand that it takes longer than those paying the right amount, but am pissed to see that transactions with zero fee are getting included but not this one.
This is just not logical.
dserrano5
Legendary
*
Offline Offline

Activity: 1974
Merit: 1030



View Profile
February 09, 2014, 06:58:02 PM
 #2

I have a transaction pending in the mempool since hours because it pays less fee than required, not zero. The fee should be 0.0002 but it pays 0.000139.

I would understand that it takes longer than those paying the right amount, but am pissed to see that transactions with zero fee are getting included but not this one.
This is just not logical.

My understanding is that a tx with less than required fee is equivalent to a zero fee one, so it isn't more eligible to be included in a block than free ones. Agreed, doesn't sound very logical, but I think that's how it works.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 09, 2014, 07:14:36 PM
 #3

I have a transaction pending in the mempool since hours because it pays less fee than required, not zero. The fee should be 0.0002 but it pays 0.000139.

I would understand that it takes longer than those paying the right amount, but am pissed to see that transactions with zero fee are getting included but not this one.
This is just not logical.

My understanding is that a tx with less than required fee is equivalent to a zero fee one, so it isn't more eligible to be included in a block than free ones. Agreed, doesn't sound very logical, but I think that's how it works.

Yes, I think this is some case of premature optimization or socialist thinking. Transactions should be simply sorted by fee/KB and stuffed into the blocks until they fit.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 09, 2014, 07:37:50 PM
 #4

Two transactions with zero fee and ten times the size of mine (20KB each) are confirmed, but not mine with a fee of 0.000139.
This sucks.
Abdussamad
Legendary
*
Offline Offline

Activity: 3710
Merit: 1586



View Profile
February 09, 2014, 07:43:49 PM
 #5

I have a transaction pending in the mempool since hours because it pays less fee than required, not zero. The fee should be 0.0002 but it pays 0.000139.

I would understand that it takes longer than those paying the right amount, but am pissed to see that transactions with zero fee are getting included but not this one.
This is just not logical.

What transactions require or don't require a fee is determined by a formula:

https://en.bitcoin.it/wiki/Transaction_fees

This means that if you have old coins you don't have to pay any fee at all. It is not a simple case of pay a fee and get confirmation, don't pay a fee don't get confirmations.

You should let the software decide what fee to pay because it takes all of this into account.

grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 09, 2014, 07:53:42 PM
 #6

I have a transaction pending in the mempool since hours because it pays less fee than required, not zero. The fee should be 0.0002 but it pays 0.000139.

I would understand that it takes longer than those paying the right amount, but am pissed to see that transactions with zero fee are getting included but not this one.
This is just not logical.

What transactions require or don't require a fee is determined by a formula:

https://en.bitcoin.it/wiki/Transaction_fees

This means that if you have old coins you don't have to pay any fee at all. It is not a simple case of pay a fee and get confirmation, don't pay a fee don't get confirmations.

You should let the software decide what fee to pay because it takes all of this into account.

I am fully aware of the rules and wrote the program that created the transaction. Yes, the program did not round up to 0.0002 as it should have. Still the behavior of the network sucks. Here the transaction for your reference. It's not beginners stuff:

https://blockchain.info/tx/a423f46be27389e966b82254cdc8c264dac485be4f66f16f7a7ddf9029d59e21
DannyHamilton
Legendary
*
Offline Offline

Activity: 3514
Merit: 4894



View Profile
February 09, 2014, 08:44:52 PM
 #7

I am fully aware of the rules and wrote the program that created the transaction. Yes, the program did not round up to 0.0002 as it should have. Still the behavior of the network sucks. Here the transaction for your reference. It's not beginners stuff:

https://blockchain.info/tx/a423f46be27389e966b82254cdc8c264dac485be4f66f16f7a7ddf9029d59e21

As I'm sure you are already aware of,  if you don't like the current fee system, all you have to do is provide mining pools with an alternative block building algorithm and convince the pools that your algorithm will result in higher profits for the pool and the pools miners.

The reason pools use the current algorithm is because it is easy (has already ben created for them), and they have been convinced that it is the best solution.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
February 09, 2014, 08:54:33 PM
 #8

Transactions should be simply sorted by fee/KB and stuffed into the blocks until they fit.
This isn't going to happen until the transaction volume gets much, much larger than it currently is.

Right now miners don't care about transaction fees because the block subsidy distorts their incentives.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 09, 2014, 09:30:34 PM
 #9

Transactions should be simply sorted by fee/KB and stuffed into the blocks until they fit.
This isn't going to happen until the transaction volume gets much, much larger than it currently is.

Right now miners don't care about transaction fees because the block subsidy distorts their incentives.

I agree miner do not care.

What pisses me off is that the 'reference' implementation yet again features a complex rule set with disastrous side effect if violated,
where a simple rule one would work better.

It is a serious blow to the reliability of the network that by missing some target fee with a few satoshi's confirmation does not get gradually slower, but just stops (in the subjective view of the user) working.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
February 09, 2014, 09:40:00 PM
 #10

Actually full node operators will probably care about this before miners will. What if the relay rules were like this?

For paying transactions: Track fee/KB statistics over the last 24 hours and calculate what percentile new transactions fall into based on that data set. Refuse to relay the lowest 5% (configurable in bitcoin.conf).

For free transactions: Track bitcoin-days statistics over the last 24 hours and calculate what percentile new transactions fall into based on that data set. Refuse to relay the lowest 50% (configurable in bitcoin.conf)
NanoAkron
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
February 09, 2014, 10:49:59 PM
 #11

Actually full node operators will probably care about this before miners will. What if the relay rules were like this?

For paying transactions: Track fee/KB statistics over the last 24 hours and calculate what percentile new transactions fall into based on that data set. Refuse to relay the lowest 5% (configurable in bitcoin.conf).

For free transactions: Track bitcoin-days statistics over the last 24 hours and calculate what percentile new transactions fall into based on that data set. Refuse to relay the lowest 50% (configurable in bitcoin.conf)

Any system that implements a reward as you suggest will create a positive feedback loop with transaction fees racing to be as high as possible without any upper limit.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
February 09, 2014, 11:33:50 PM
 #12

Any system that implements a reward as you suggest will create a positive feedback loop with transaction fees racing to be as high as possible without any upper limit.
No, it won't.
NanoAkron
Sr. Member
****
Offline Offline

Activity: 252
Merit: 250


View Profile
February 10, 2014, 12:56:27 AM
 #13

Any system that implements a reward as you suggest will create a positive feedback loop with transaction fees racing to be as high as possible without any upper limit.
No, it won't.

Well, that's clearly a well-though out and thorough response.

I have a pile of transactions with fees. The bottom 50% don't get relayed. Everyone bumps up their fees slightly to ensure transmission. The bottom 50% don't get relayed. They try again with slightly higher fees. The bottom 50% don't get relayed. They bump their fees up again.

Lather, rinse, repeat.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
February 10, 2014, 05:08:08 AM
 #14

Well, that's clearly a well-though out and thorough response.
I don't feel particularly obligated to give a reply that is more thought out and thorough than the message that proceeded it.

I have a pile of transactions with fees. The bottom 50% don't get relayed. Everyone bumps up their fees slightly to ensure transmission. The bottom 50% don't get relayed. They try again with slightly higher fees. The bottom 50% don't get relayed. They bump their fees up again.

Lather, rinse, repeat.
Spenders get more than one attempt per transaction. If we assume they aren't going to behave moronically, they'll move their bid in both directions, up and down, in order to hit their desired price/speed point.
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 10, 2014, 05:18:50 AM
 #15

Well, that's clearly a well-though out and thorough response.
I don't feel particularly obligated to give a reply that is more thought out and thorough than the message that proceeded it.

I have a pile of transactions with fees. The bottom 50% don't get relayed. Everyone bumps up their fees slightly to ensure transmission. The bottom 50% don't get relayed. They try again with slightly higher fees. The bottom 50% don't get relayed. They bump their fees up again.

Lather, rinse, repeat.
Spenders get more than one attempt per transaction. If we assume they aren't going to behave moronically, they'll move their bid in both directions, up and down, in order to hit their desired price/speed point.

Unfortunately sender only have one shot. Should they underestimate the fee needed (as I just did), they face arbitrary delay during which funds are locked, since a subsequent attempt will be rejected by relay nodes as double spend. One can only wait until it confirms or drops out of the mempool. Both could be days.

I am also afraid that an automated adjustment will create a positive feedback loop in transaction fees, but think that it is inevitable, since hard coding some fee/KB can't keep up with changing environment.
gmaxwell
Moderator
Legendary
*
expert
Offline Offline

Activity: 4298
Merit: 8818



View Profile WWW
February 10, 2014, 05:19:35 AM
 #16

Because there are several trivial DOS attack against honest users of the network / nodes that arises if you prioritize non-zero-but-effectively-zero-fee transactions over high priority ones.  Miners are free to customize the threshold defined as effectively zero— it's a published and supported configuration setting.  Personally, I turn it up a bit— I think I am better rewarded in total for doing so.
justusranvier
Legendary
*
Offline Offline

Activity: 1400
Merit: 1013



View Profile
February 10, 2014, 05:26:27 AM
 #17

Unfortunately sender only have one shot. Should they underestimate the fee needed (as I just did), they face arbitrary delay during which funds are locked, since a subsequent attempt will be rejected by relay nodes as double spend. One can only wait until it confirms or drops out of the mempool. Both could be days.
Only until 0.9 comes out. After that senders will receive failure messages that tell them why their transaction was rejected.

I am also afraid that an automated adjustment will create a positive feedback loop in transaction fees, but think that it is inevitable, since hard coding some fee/KB can't keep up with changing environment.
If markets were not a (the only) successful method of price discovery, we wouldn't be having this conversation because we'd be dead or living as hunter-gathers.
ahmedjadoon
Legendary
*
Offline Offline

Activity: 1414
Merit: 1000


View Profile
February 10, 2014, 05:28:21 AM
 #18

May I ask how long it takes to process payments with zero fees?
grau (OP)
Hero Member
*****
Offline Offline

Activity: 836
Merit: 1030


bits of proof


View Profile WWW
February 10, 2014, 06:26:20 AM
 #19

May I ask how long it takes to process payments with zero fees?
Just as long as it takes with insufficient fees. That was my OP point. Practically between 1/2 and 3 days (now).
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!