Bitcoin Forum
November 17, 2024, 11:24:45 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Thoughts on making fees for relaying transactions more flexible  (Read 1753 times)
jav (OP)
Sr. Member
****
Offline Offline

Activity: 249
Merit: 251


View Profile
April 22, 2011, 07:42:13 PM
 #1

Reading the current Bitcoin source on github, I can identify theses rules for getting a transaction relayed by a node:

- if a transaction is fairly large, 0.01 BTC per kb is required
- if I want to send less than 0.01 BTC, a fee of 0.01 BTC is required
- if I want to avoid the rate-limiter, a fee of 0.01 BTC is required
- something about raising fees when a block is almost full (not sure I understand that completely)

Any other rules I have forgotten?

To be honest, I don't really like where this is going. Especially this arbitrary value of 0.01 BTC, which is hardcoded in the source. Sure, it can be changed at some point, but it just doesn't seem very flexible.

Can't we come up with something that auto-adjusts in some way? For example: A node could commit to a certain maximum number of transactions relayed per minute. If it sees that the rate is exceeded, it gradually increases the fee it requires, until the rate is within limits again. If someone starts penny-flooding again, you only have to pay a little more than the attacker, instead of having to jump to the arbitrary value of 0.01 BTC right away. (Just to clarify: I know that the node isn't getting any fees for relaying transactions. When I say it "requires a fee", I mean it in the sense that it wants to see that fee on the transaction to consider it for relaying.).

Also: In the discussion about fees, you often hear: "the miners will sort it out". I think it's important to be clear that there are two different issues:
1) What transactions to include in a block. If this gets crowded, miners can figure out whatever fee structure they think will work best. This is very flexible and nice
2) What transactions to relay. Because bandwidth is a limited resource as well. And that's not flexible at all right now, with an increasing number of fixed rules in the source code. This is where I would like to see some auto-adjusting mechanism.

Hive, a beautiful wallet with an app platform for Mac OS X, Android and Mobile Web. Translators wanted! iOS and OS X devs see BitcoinKit. Tweets @hivewallet. Donations appreciated at 1HLRg9C1GsfEVH555hgcjzDeas14jen2Cn.
xf2_org
Member
**
Offline Offline

Activity: 98
Merit: 13


View Profile
April 22, 2011, 07:56:43 PM
 #2


You're welcome to run a miner and experiment Smiley

As long as the transactions and blocks can be validated by the clients on the network, miners are free to do what they want.  Miners can experiment with alternate TX selection methods, such as ones you've described.  Some miners (with very, very little hash power) already accept any valid TX, regardless of fee.  It's the free market at work...

khal
Hero Member
*****
Offline Offline

Activity: 540
Merit: 500



View Profile WWW
April 22, 2011, 08:40:12 PM
 #3

Pool managers should publicly say what rules they follow, what they accept, what they don't and what they prioritize if they don't follow the "standard" rules of bitcoind. Do they already use other rules ?
jav (OP)
Sr. Member
****
Offline Offline

Activity: 249
Merit: 251


View Profile
April 23, 2011, 06:56:55 PM
 #4

You're welcome to run a miner and experiment Smiley

Well, let's say I run a miner that accepts transactions below 0.01 BTC for a 10% fee. So someone out there sends a transaction of 0.005 BTC with a fee of 0.0005 BTC. Problem: I'm never going to see that transaction, because all the nodes in between won't relay it, because they require a 0.01 BTC fee on everything below 0.01 BTC (the new "dust rule").

Or are you saying I need to be in direct (network) contact to everyone who potentially wants to take advantage of my fee structure? is this the expectation?


Hive, a beautiful wallet with an app platform for Mac OS X, Android and Mobile Web. Translators wanted! iOS and OS X devs see BitcoinKit. Tweets @hivewallet. Donations appreciated at 1HLRg9C1GsfEVH555hgcjzDeas14jen2Cn.
bitlotto
Hero Member
*****
Offline Offline

Activity: 672
Merit: 500


BitLotto - best odds + best payouts + cheat-proof


View Profile WWW
April 23, 2011, 08:27:07 PM
 #5

You're welcome to run a miner and experiment Smiley

Well, let's say I run a miner that accepts transactions below 0.01 BTC for a 10% fee. So someone out there sends a transaction of 0.005 BTC with a fee of 0.0005 BTC. Problem: I'm never going to see that transaction, because all the nodes in between won't relay it, because they require a 0.01 BTC fee on everything below 0.01 BTC (the new "dust rule").

Or are you saying I need to be in direct (network) contact to everyone who potentially wants to take advantage of my fee structure? is this the expectation?



The person making the transaction needs to be connected to the miner somehow either directly or through a node that will relay it. The person could connect using: -addnode=(node address) and connect to said miner.

*Next Draw Feb 1*  BitLotto: monthly raffle (0.25 BTC per ticket) Completely transparent and impossible to manipulate who wins. TOR
TOR2WEB
Donations to: 1JQdiQsjhV2uJ4Y8HFtdqteJsZhv835a8J are appreciated.
xf2_org
Member
**
Offline Offline

Activity: 98
Merit: 13


View Profile
April 23, 2011, 08:55:22 PM
 #6

You're welcome to run a miner and experiment Smiley

Well, let's say I run a miner that accepts transactions below 0.01 BTC for a 10% fee. So someone out there sends a transaction of 0.005 BTC with a fee of 0.0005 BTC. Problem: I'm never going to see that transaction, because all the nodes in between won't relay it, because they require a 0.01 BTC fee on everything below 0.01 BTC (the new "dust rule").

That is correct, that nodes won't relay the TX.

However, if a miner accepts a TX into a block, then all nodes will relay that block (including the TX).

Therefore, you must connect directly to miners that accept weird transactions, if you are producing weird transactions.

Luke-Jr
Legendary
*
expert
Offline Offline

Activity: 2576
Merit: 1186



View Profile
April 23, 2011, 09:15:05 PM
 #7

Therefore, you must connect directly to miners that accept weird transactions, if you are producing weird transactions.
Or just connect to the free transaction relay network which will relay "weird" (really taboo) transactions between connected nodes.

BitcoinBonus
Newbie
*
Offline Offline

Activity: 46
Merit: 0



View Profile WWW
April 30, 2011, 05:48:59 PM
 #8

I'm also very concerned about the 0.01 BTC hard-coded transaction fee.  I was very pleased to find that bitcoin transactions were so inexpensive when I discovered Bitcoin in December 2010, and at the time, the optional 0.01 BTC fee seemed resonable. But with the way the market is going, with bitcoin breaking $4.00 USD today, a transaction costs 4 cents USD, and this could someday creep into the realm of a fee greater than what Visa/MC or Paypal charge for some transactions.  What would it take to make the transaction fee a percentage fee of the transaction amount? Or, is there a way I could buy a "Monthy" contract with a miner to send all the transactions I've got for that single monthly fee?

I'm glad to hear the new client allows transactions smaller than 0.01, but that feature isn't very useful if the transaction fee is set to 0.01 BTC. The great promises about Bitcoin being such a Divisible form of currency disappear in this scenario and the possibility of individual micropayments is gone as far as I can tell.
khal
Hero Member
*****
Offline Offline

Activity: 540
Merit: 500



View Profile WWW
April 30, 2011, 06:05:21 PM
Last edit: April 30, 2011, 10:08:11 PM by khal
 #9

Almost all transactions can be sent without a fee.

How to avoid fees :
- do not send payment less than 0.01 BTC
If the GUI propose you a fee, there is 2 possibilities :
- GUI has chosen coins recently used : click cancel and send again, it may change the coins used. If not, you can wait or change the amount.
- GUI has chosen a lot of coins to make your payement : click cancel and send again, it may change the coins used. If not, you can wait or change the amount.

An option to use old coins in priority could avoid the last 2 problems.
Mbtc
Newbie
*
Offline Offline

Activity: 7
Merit: 0


View Profile
April 30, 2011, 09:59:01 PM
 #10

I agree that the 0.01 BTC hardcoded numbers seem to be a serious problem and should be dealt with sooner rather than later. If bitcoin reaches the valuation that some people think it deserves then having transaction fees and/or minimum transaction sizes of 0.01 BTC will be completely infeasible. Just to make an illustration, imagine having transaction fees of $1... Bye bye micropayments.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5390
Merit: 13427


View Profile
April 30, 2011, 11:00:09 PM
 #11

The Eligius pool already accepts transactions with fees much lower than 0.01, though a small fee is required. So if you give a fee of 0.001, your transactions will be accepted eventually.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Gavin Andresen
Legendary
*
qt
Offline Offline

Activity: 1652
Merit: 2301


Chief Scientist


View Profile WWW
April 30, 2011, 11:14:20 PM
 #12

An option to use old coins in priority could avoid the last 2 problems.

The built-in coin selection algorithm already prefers using older coins rather than newer ones.

How often do you get the chance to work on a potentially world-changing project?
BitcoinBonus
Newbie
*
Offline Offline

Activity: 46
Merit: 0



View Profile WWW
May 01, 2011, 12:10:02 AM
 #13

The Eligius pool already accepts transactions with fees much lower than 0.01, though a small fee is required. So if you give a fee of 0.001, your transactions will be accepted eventually.
Can you say more?  Is it possible to configure my bitcoind to use this pool for my outgoing transactions (I'm thinking not) ?  Or do I just have to get lucky and hope that this pool will find it ?   

I'm hopeful that a market economy with clear rules can be formed to regulate how transactions get accepted into blocks that allows for the minimization of the transaction fees.  I wonder what Satoshi would say.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5390
Merit: 13427


View Profile
May 01, 2011, 12:33:11 AM
 #14

Can you say more?  Is it possible to configure my bitcoind to use this pool for my outgoing transactions (I'm thinking not) ?

There is. Start Bitcoin with -addnode=173.242.112.53. Your transaction would eventually find the node even without that, though.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
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!