Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: jgarzik on September 07, 2010, 03:17:34 AM



Title: Always pay transaction fee?
Post by: jgarzik on September 07, 2010, 03:17:34 AM

To accurately reflect that processing a transaction has certain resource costs across the network, I propose that tx fee be required for every transaction after X datetime (where X is a few months in the future).



Title: Re: Always pay transaction fee?
Post by: MoonShadow on September 07, 2010, 04:10:39 AM
I propose that that number of months be 1440.


Title: Re: Always pay transaction fee?
Post by: caveden on September 07, 2010, 07:19:01 AM
That will probably happen spontaneously if someone make a client (or add the option to the current one) that allows the user to charge transaction fees for the blocks it generates.


Title: Re: Always pay transaction fee?
Post by: FreeMoney on September 07, 2010, 08:04:49 AM
The correct fee is so small right now that the psychological detriment far outweighs the benefits of charging it imo. It's like that damn place that charges me a quarter a tiny cup of water when I buy a $9 meal. Yes, I know there are costs to pressing the button, but now I don't like you anyway.

I expect it will be a long time before a high % of nodes require a fee for normal transactions. This means most users will not attach a fee, being willing to wait 4 blocks on average or whatever. So for a good while charging a fee simply means not putting transactions in blocks, this will make bitcoin slightly less appealing and slightly reduce use which will slightly reduce the value of coins. So anyone who has coins can self interestedly include transactions for free.

Jgarzik, do you have a guess as to the resource costs of a normal transaction?


Title: Re: Always pay transaction fee?
Post by: satoshi on September 07, 2010, 04:32:21 PM
Another option is to reduce the number of free transactions allowed per block before transaction fees are required.  Nodes only take so many KB of free transactions per block before they start requiring at least 0.01 transaction fee.

The threshold should probably be lower than it currently is.

I don't think the threshold should ever be 0.  We should always allow at least some free transactions.


Title: Re: Always pay transaction fee?
Post by: lfm on September 07, 2010, 05:36:22 PM
If you WANT to start paying the transaction fees now you can with the -paytxfee=0.01
 (beta?) command line switch. If more people use this switch then it might help discourage others from requiring compulsory fees.


Title: Re: Always pay transaction fee?
Post by: MoonShadow on September 07, 2010, 07:20:29 PM
Another option is to reduce the number of free transactions allowed per block before transaction fees are required.  Nodes only take so many KB of free transactions per block before they start requiring at least 0.01 transaction fee.

The threshold should probably be lower than it currently is.

I don't think the threshold should ever be 0.  We should always allow at least some free transactions.


What is the current threshold, and how does a client know to pay for this in advance?


Title: Re: Always pay transaction fee?
Post by: theymos on September 07, 2010, 11:29:33 PM
What is the current threshold, and how does a client know to pay for this in advance?

http://www.bitcoin.org/wiki/doku.php?id=transaction_fee


Title: Re: Always pay transaction fee?
Post by: satoshi on September 08, 2010, 05:30:14 PM
Currently, paying a fee is controlled manually with the -paytxfee switch.  It would be very easy to make the software automatically check the size of recent blocks to see if it should pay a fee.  We're so far from reaching the threshold, we don't need that yet.  It's a good idea to see how things go with controlling it manually first anyway.

It's not a big deal if we reach the threshold.  Free transactions would just take longer to get into a block.

I did a rough tally of 4000 blocks from around 74000-78000.  This is excluding the block reward transactions:

There were average 2 transactions per block, 17 transactions per hour, 400 transactions per day.

Average transaction bytes per block was 428 bytes, or 214 bytes per transaction.

The current threshold is 200KB per block, or about 1000 transactions per block.  I think it should be lowered to 50KB per block.  That would still be more than 100 times the average transactions per block.

The threshold can easily be changed in the future.  We can decide to increase it when the time comes.  It's a good idea to keep it lower as a circuit breaker and increase it as needed.  If we hit the threshold now, it would almost certainly be some kind of flood and not actual use.  Keeping the threshold lower would help limit the amount of wasted disk space in that event.


Title: Re: Always pay transaction fee?
Post by: satoshi on September 23, 2010, 04:08:35 PM
The current threshold is 200KB per block, or about 1000 transactions per block.  I think it should be lowered to 50KB per block.  That would still be more than 100 times the average transactions per block.
I implemented this change in SVN rev 157.

The reason I previously made it so high was to allow very large transactions without hitting the transaction fee.  The threshold was around 26,000 BTC for transactions made of 50 BTC generated coins.  Even though it was 100 times easier to generate back then, only a few people ever encountered the fee at that level.  The new threshold puts it at around 11,000 BTC for sending generated coins.  It would mostly only be reached with generated bitcoins.  If you bought your bitcoins, they'll be denominated in larger transactions and won't be anywhere near the fee limit, unless you bought them in several hundred separate transactions.  Even if you do reach the fee level, you only have to pay it once to bundle your little transactions together.


Title: Re: Always pay transaction fee?
Post by: Babylon on September 23, 2010, 07:23:01 PM
Including fee changes and authorizing fees in the GUI would go a long way toward getting bitcoin used by the general public.  Command line orders tend to be unpopular outside the Unix crowd.