Bitcoin Forum
December 13, 2024, 12:53:54 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 »  All
  Print  
Author Topic: Prioritized transactions, and tx fees  (Read 9573 times)
jgarzik (OP)
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 29, 2010, 08:13:30 PM
 #1

As noted in this wiki page and in this satoshi post, the -paytxfee switch may be employed give your sent transactions "priority."

Prioritized transactions appear to be defined as increasing the likelihood that a transaction will be included in a block, even if that block is very large (byte-wise or tx-wise).

Considering that 99.9% of blocks are outside the range that will incur tx fees, it can be said that tx fees are largely useless today.  But it makes me curious...

Are there any other areas of the bitcoin client or network that could somehow prioritize transactions based on tx fees?  Examples:
  • if you have a list of transactions to send out to the network, send prioritized ones to more connected nodes
  • restart mining work immediately if priority tx arrives, but continue working on existing block for a while, if free tx arrives

And with my businessman's cap on, I would think it prudent practice for any bitcoin business to use -paytxfee=0.02 by default, just to be safe, guaranteeing priority on the existing network and existing clients, in cases of extreme network load.

Other comments about how to use tx fees welcome...  I strongly believe that a healthy tx fee structure is important to the long term health of the bitcoin P2P network.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
September 29, 2010, 09:11:16 PM
 #2

As far as I can tell, transactions are not prioritized according to fee size. Paytxfee just ensures that you will meet the fee requirements (and it isn't guaranteed to do that). This does seem to be contrary to what Satoshi and sirius-m have implied, but I can't find any prioritization in the code.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
wscott
Newbie
*
Offline Offline

Activity: 20
Merit: 0


View Profile
September 30, 2010, 09:40:21 AM
 #3

The fees are a function of total transaction volume.
Right now the volume is pretty tiny so all fees are zero.
Later when the volume is high only some of the current transactions will be included in each
block so you either pay a fee to make sure your transaction is desirable to be in each block
or wait until the trading volume drops.

-Wayne
satoshi
Founder
Sr. Member
*
Offline Offline

Activity: 364
Merit: 7428


View Profile
September 30, 2010, 06:11:56 PM
Last edit: September 30, 2010, 10:20:15 PM by satoshi
 #4

It ramps up the fee requirement as the block fills up:

<50KB  free
50KB   0.01
250KB  0.02
333KB  0.03
375KB  0.04
etc.

It's a typical pricing mechanism.  After the first 50KB sells out, the price is raised to 0.01.  After 250KB is sold, it goes up to 0.02.  At some price, you can pretty much always get in if you're willing to outbid the other customers.

Just including the minimum 0.01 goes a long way.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
September 30, 2010, 06:16:36 PM
 #5

That's cost per kilobyte, though, and a kilobyte can only hold ~9 TxIns, so 0.01 is not guaranteed to meet the requirement.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
satoshi
Founder
Sr. Member
*
Offline Offline

Activity: 364
Merit: 7428


View Profile
September 30, 2010, 06:22:22 PM
 #6

True, the switch should be something more dynamic that pays per KB.  It's harder to think of how to explain it.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
September 30, 2010, 06:32:41 PM
 #7

No one's going to figure out -paytxfee without reading the forums anyway, so we might as well just use -expectedBlockSize and rely on forum members to explain reasonable values if it actually becomes necessary.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
MoonShadow
Legendary
*
Offline Offline

Activity: 1708
Merit: 1010



View Profile
September 30, 2010, 06:33:59 PM
 #8

It ramps up the fee requirement as the block fills up:

<50K  free
50K   0.01
250K  0.02
333K  0.03
375K  0.04
etc.

It's a typical pricing mechanism.  After the first 50K sells out, the price is raised to 0.01.  After 250K is sold, it goes up to 0.02.  At some price, you can pretty much always get in if you're willing to outbid the other customers.

Just including the minimum 0.01 goes a long way.

So, in a Snowcrash future with Bitcoin as a major currency, generation of a block with 250K transactions would net the generating client a profit of 2K+ bitcoin, plus the regular award?  Or is this total block size?  Am I looking at this right?  If there is ever a future that this transaction fee structure would be triggered by the transaction volume in a 10 minute span, then the Bitcoin economy would have to rival one of the top ten economies (defined by national borders) and that fee would be a fortune.

Is that fee structure ridgid, or can it be backed down as the value of bitcoin increases?  I can conceive of a future wherein a ridgid fee of even .01 bitcoin could become a burden upon further growth.  If the value of a bitcoin were to break parity with the Euro, such a fee structure could start to strangle the micropayments end of the economy.  Granted, a sustained transaction rate of 300K every hour would still be a huge economy before such transaction fees came into play, making Paypal look like a small player.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
jgarzik (OP)
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 30, 2010, 06:38:42 PM
 #9

Does anybody have estimates of total, worldwide USD or EUR transactions in an average 10-minute timespan?

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
ribuck
Donator
Hero Member
*
Offline Offline

Activity: 826
Merit: 1060


View Profile
September 30, 2010, 06:50:39 PM
 #10

A quick Google search returned these PayPal statistics, in case they're of interest to anyone:

  • Over 2 million transactions per day (that's about 14000 per 10 minutes)
  • 150 million accounts in 190 countries
  • Over $150 million in payments per day

Of course, any system that works well for micropayments could end up handling many more transactions but a much lower dollar equivalent.
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
September 30, 2010, 06:55:54 PM
 #11

Or is this total block size?  Am I looking at this right?

It's total block size. 250K = ~1150 transactions. See:
http://www.bitcoin.org/wiki/doku.php?id=transaction_fee

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
MoonShadow
Legendary
*
Offline Offline

Activity: 1708
Merit: 1010



View Profile
September 30, 2010, 06:58:18 PM
 #12

Does anybody have estimates of total, worldwide USD or EUR transactions in an average 10-minute timespan?

I did a quick Google search on the topic, and discovered an old Visa press release that stated that during the peak hour for the year of 2005 (Dec 23rd) Visa processed an average of 6,363 transactions per second, or just shy of 3.82 million transactions within a ten minute span.  The same press release made the claim that Visa processed more transactions within a coffee break than all of the world's public stock exchanges have ever done on their best day. combined.  I'm afraid I can't link it however, you will have to search for it yourself.  "How many transactions?" should work.

I could not find any numbers for Paypal, however.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
September 30, 2010, 07:01:29 PM
 #13

I did a quick Google search on the topic, and discovered an old Visa press release that stated that during the peak hour for the year of 2005 (Dec 23rd) Visa processed an average of 6,363 transactions per second, or just shy of 3.82 million transactions within a ten minute span.

That's a lot. Bitcoin won't allow blocks over 1MB, so assuming a (rather small) average transaction size of 216 bytes, Bitcoin can only handle 4,629 transactions per 10 minutes.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
MoonShadow
Legendary
*
Offline Offline

Activity: 1708
Merit: 1010



View Profile
September 30, 2010, 07:08:19 PM
 #14

I did a quick Google search on the topic, and discovered an old Visa press release that stated that during the peak hour for the year of 2005 (Dec 23rd) Visa processed an average of 6,363 transactions per second, or just shy of 3.82 million transactions within a ten minute span.

That's a lot. Bitcoin won't allow blocks over 1MB, so assuming a (rather small) average transaction size of 216 bytes, Bitcoin can only handle 4,629 transactions per 10 minutes.

That hard limit is going to have to be bumped up if/when Bitcoin takes off.  463 transactions per minute wouldn't be anywhere near viable for a worldwide online currency.  We, at least, need to be able to handle the number of average transactions per minute that paypal claims they currently average.

"The powers of financial capitalism had another far-reaching aim, nothing less than to create a world system of financial control in private hands able to dominate the political system of each country and the economy of the world as a whole. This system was to be controlled in a feudalist fashion by the central banks of the world acting in concert, by secret agreements arrived at in frequent meetings and conferences. The apex of the systems was to be the Bank for International Settlements in Basel, Switzerland, a private bank owned and controlled by the world's central banks which were themselves private corporations. Each central bank...sought to dominate its government by its ability to control Treasury loans, to manipulate foreign exchanges, to influence the level of economic activity in the country, and to influence cooperative politicians by subsequent economic rewards in the business world."

- Carroll Quigley, CFR member, mentor to Bill Clinton, from 'Tragedy And Hope'
jgarzik (OP)
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 30, 2010, 07:11:51 PM
 #15

That hard limit is going to have to be bumped up if/when Bitcoin takes off.  463 transactions per minute wouldn't be anywhere near viable for a worldwide online currency.  We, at least, need to be able to handle the number of average transactions per minute that paypal claims they currently average.

+1

Scaling to high transaction rate has always been my main concern about viability of bitcoin.  I'm much more concerned about scalability than government shutdown, for example.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
jgarzik (OP)
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
September 30, 2010, 10:14:34 PM
 #16

Maybe we can scale the block limit, like we scale the difficulty?

Compute average block size over past two weeks, and don't accept blocks over AVG_SIZE*100 ?

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
October 01, 2010, 01:38:39 AM
 #17

Maybe we can scale the block limit, like we scale the difficulty?

Compute average block size over past two weeks, and don't accept blocks over AVG_SIZE*100 ?


That would force large block sizes on people who can't handle them. MAX_BLOCK_SIZE can be carefully increased if it's ever actually limiting. 0.3.13 won't even create blocks over 500kB, so it's not a problem right now.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
jgarzik (OP)
Legendary
*
Offline Offline

Activity: 1596
Merit: 1100


View Profile
October 01, 2010, 10:39:53 PM
 #18

Well, at a minimum, bitcoin should be able to match Paypal's average volume over a 10-minute span.

Otherwise, I don't see how we can convince others that bitcoin is a long term viable [micro]currency, if technical limitations keep bitcoin below 500 transactions/minute.

Are there any low-tech ways to boost maximum number of transactions, such as zlib compression of blocks?

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
October 03, 2010, 07:59:04 PM
 #19

I did a quick Google search on the topic, and discovered an old Visa press release that stated that during the peak hour for the year of 2005 (Dec 23rd) Visa processed an average of 6,363 transactions per second, or just shy of 3.82 million transactions within a ten minute span.

That's a lot. Bitcoin won't allow blocks over 1MB, so assuming a (rather small) average transaction size of 216 bytes, Bitcoin can only handle 4,629 transactions per 10 minutes.

Where does the 1Mb limit come from? Is it a technical limit, or simply hardcoded to save bandwidth?
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5404
Merit: 13498


View Profile
October 03, 2010, 08:14:31 PM
 #20

Where does the 1Mb limit come from? Is it a technical limit, or simply hardcoded to save bandwidth?

It's just an arbitrary limit, probably to limit the effects of DoS attacks. You won't accept blocks over 1 decimal megabyte.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Pages: [1] 2 »  All
  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!