Bitcoin Forum
October 03, 2024, 10:25:16 PM *
News: Latest Bitcoin Core release: 27.1 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2] 3 »  All
  Print  
Author Topic: How long to start generating BC's?  (Read 19810 times)
jib
Member
**
Offline Offline

Activity: 92
Merit: 10


View Profile
July 14, 2010, 01:36:40 AM
 #21

Wouldn't the difficulty get lowered (the target number get increased) if 2016 blocks take more than two weeks to generate? http://www.bitcoin.org/wiki/doku.php?id=target
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5334
Merit: 13307


View Profile
July 14, 2010, 01:42:18 AM
 #22

Yes, it would.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Gavin Andresen
Legendary
*
Offline Offline

Activity: 1652
Merit: 2300


Chief Scientist


View Profile WWW
July 14, 2010, 01:44:36 AM
Last edit: July 15, 2010, 03:09:20 AM by gavinandresen
 #23

No, actually, in the current source code it never gets lowered:
Code:
   // Retarget
    CBigNum bnNew;
    bnNew.SetCompact(pindexLast->nBits);
    bnNew *= nActualTimespan;
    bnNew /= nTargetTimespan;

    if (bnNew > bnProofOfWorkLimit)
        bnNew = bnProofOfWorkLimit;

    /// debug print
    printf("GetNextWorkRequired RETARGET\n");
There's no "else if (bnNew < ...something)"

UPDATE:  rodin is right, I'm wrong.  bnProofOfWorkLimit is a constant, and this code just make sure the proof of work never gets too easy.

How often do you get the chance to work on a potentially world-changing project?
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5334
Merit: 13307


View Profile
July 14, 2010, 01:52:35 AM
 #24

http://bitcointalk.org/index.php?topic=43.0
Quote
date, difficulty factor, % change
2009         1.00
30/12/2009   1.18  +18%
11/01/2010   1.31  +11%
25/01/2010   1.34   +2%
04/02/2010   1.82  +36%
14/02/2010   2.53  +39%
24/02/2010   3.78  +49%
08/03/2010   4.53  +20%
21/03/2010   4.57   +9%
01/04/2010   6.09  +33%
12/04/2010   7.82  +28%
21/04/2010  11.46  +47%
04/05/2010  12.85  +12%
19/05/2010  11.85   -8%
29/05/2010  16.62  +40%
11/06/2010  17.38   +5%

I've checked a few past SVN revisions, and that section was not changed. I think you're misreading it.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
July 14, 2010, 02:01:15 AM
 #25

Wouldn't the difficulty get lowered (the target number get increased) if 2016 blocks take more than two weeks to generate? http://www.bitcoin.org/wiki/doku.php?id=target
No, actually, in the current source code it never gets lowered:

This isn't necessarily a bad thing where the difficulty doesn't get lowered even if nobody bothers to make them anymore, but it still turns bitcoins into a lottery.  If for example the exchange rate is $1 per 0.01 bitcoins, creating a new coin block might take weeks or months to complete, but when completed it would have an effective "real world" value of $5,000.

The danger here is that those generating the new coin blocks would be specialists who are putting their effort into generating new coins.  This is a philosophical and political question too, as that tends to concentrate the "wealth" into those people who are doing this specialization where mere mortals simply don't have the equipment necessary to accomplish the task.

The real problem as I see it is one of liquidity in the marketplace, and something that may actually show up sooner than later.  By distributing coins out to more users, it gives them something with which to buy or sell, and at least allows somebody to offer some coins to the exchanges in smaller and more regular amounts.

It is also an issue for me legally, as I will have to essentially stop generating coins or even participate with Bitcoin if this turns into a lottery of some kind, as that is illegal in my jurisdiction.  By demonstrating that while random chance does play a role but that on average most users get roughly the same amount of bitcoins through the generation process (based on skill and resources rather than luck) it avoids the gambling laws to prohibit this activity.

Mind you, I'm not against somebody setting up a formal lottery (not that I can or will participate) but that to do so should be explicit and something that should be legally performed where laws permit that kind of activity.  It shouldn't be something bound so tightly to the software that it is fundamental to the operations of the network.  Again, it isn't to generate the coins but to allocate the base currency in a manner that is roughly fair and equitable.
martin
Full Member
***
Offline Offline

Activity: 150
Merit: 100



View Profile WWW
July 14, 2010, 02:17:46 AM
 #26

One thing I've been wondering, which seems to fit into this topic, is this:

If the amount of bitcoins available for block generation eventually drops off, why will anyone expend the effort to generate new blocks? Will the reduced number of bitcoins be offset by the expected higher market value of those coins?
theymos
Administrator
Legendary
*
Offline Offline

Activity: 5334
Merit: 13307


View Profile
July 14, 2010, 03:03:00 AM
 #27

Transaction fees will replace generating as the incentive.

1NXYoJ5xU91Jp83XfVMHwwTUyZFK64BoAD
Anonymous
Guest

July 14, 2010, 04:25:47 AM
 #28

The goal is to minimize inflation, not keep it going forever. BitCoin generation at this point is just an incentive for people to create blocks. Clearly it's working if hundreds of computers are being added to the network. It doesn't matter if new users can't get free coins -- BitCoin is not meant to be a "virtual printing press". In 4-8 years, no average user is going to be generating coins; this is expected and intentional.

Why?  This is not going to increase inflation at all, at least any more than already exists.  It turns the coin distribution issue from something that is currently a lottery into something that is more diffuse and distributed.  The rate of increase overall for the network of the money supply is something that would still remain fixed, but more people would have access to those new coins rather than the few people with very good processors.

Yes, I get it that this is explicitly designed to allocate bitcoins initially and that in the long run the focus will be on trade rather than on creation.  I just don't see the technical side of this in terms of why new coin blocks can't be generated at a faster rate, and as a policy it sort of stinks too.  If the goal is to tell new users not to bother with creation of these kind of blocks, at least explain that in the documentation and make it a point that new users should never even bother... that all of the blocks that have ever and will ever be made have been made (or close enough that the exception doesn't matter).

I am not asking for the work to be decreased so hundreds of new coins will be flooding the network in an inflationary spiral, but rather asking that the value of the coins generated be decreased instead to compensate for the increase in the number of users.  Both are possible, and there is no sound technical reason other than it hasn't yet been implemented to cope with at least the current number of users.

New users cant print fiat money either.The point is not the generation but the fact you can transact without causing a debt to be created and the anonymous characteristics of bitcoins.When they start putting rfid chips into cash money I for one will be exchanging fiat for bitcoins as fast as possible.No one ever said moving to a new system is perfect.If you want/need bitcoins people will accept goods and services for them.It is enough for me to know that the printing presses cant be turned on whenever they need to fight a war.
rodin
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
July 14, 2010, 08:11:21 AM
Last edit: July 16, 2010, 08:53:31 PM by rodin
 #29

No, actually, in the current source code it never gets lowered:
Code:
1     // Retarget
2     CBigNum bnNew;
3     bnNew.SetCompact(pindexLast->nBits);
4     bnNew *= nActualTimespan;
5     bnNew /= nTargetTimespan;
6
7     if (bnNew > bnProofOfWorkLimit)
8        bnNew = bnProofOfWorkLimit;
9
10    /// debug print
11    printf("GetNextWorkRequired RETARGET\n");
There's no "else if (bnNew < ...something)"

The actual adjustment happens on lines 4 and 5.
bnNew = bnNew * actual/target
This will scale the required work up or down, depending on how long it actually takes to produce a block.

Lines 7 and 8 are just clipping.

Bitcoiner
Member
**
Offline Offline

Activity: 70
Merit: 11


View Profile
July 14, 2010, 09:12:15 AM
 #30

The goal is to minimize inflation, not keep it going forever. BitCoin generation at this point is just an incentive for people to create blocks. Clearly it's working if hundreds of computers are being added to the network. It doesn't matter if new users can't get free coins -- BitCoin is not meant to be a "virtual printing press". In 4-8 years, no average user is going to be generating coins; this is expected and intentional.

Why?  This is not going to increase inflation at all, at least any more than already exists.  It turns the coin distribution issue from something that is currently a lottery into something that is more diffuse and distributed.  The rate of increase overall for the network of the money supply is something that would still remain fixed, but more people would have access to those new coins rather than the few people with very good processors.

Yes, I get it that this is explicitly designed to allocate bitcoins initially and that in the long run the focus will be on trade rather than on creation.  I just don't see the technical side of this in terms of why new coin blocks can't be generated at a faster rate, and as a policy it sort of stinks too.  If the goal is to tell new users not to bother with creation of these kind of blocks, at least explain that in the documentation and make it a point that new users should never even bother... that all of the blocks that have ever and will ever be made have been made (or close enough that the exception doesn't matter).

I am not asking for the work to be decreased so hundreds of new coins will be flooding the network in an inflationary spiral, but rather asking that the value of the coins generated be decreased instead to compensate for the increase in the number of users.  Both are possible, and there is no sound technical reason other than it hasn't yet been implemented to cope with at least the current number of users.

New users cant print fiat money either.The point is not the generation but the fact you can transact without causing a debt to be created and the anonymous characteristics of bitcoins.When they start putting rfid chips into cash money I for one will be exchanging fiat for bitcoins as fast as possible.No one ever said moving to a new system is perfect.If you want/need bitcoins people will accept goods and services for them.It is enough for me to know that the printing presses cant be turned on whenever they need to fight a war.

Also, "I am not asking for the work to be decreased so hundreds of new coins will be flooding the network in an inflationary spiral, but rather asking that the value of the coins generated be decreased instead to compensate for the increase in the number of users" reduces the value for all other users compared to where it would be otherwise. I don't see the point of that. If demand for the currency rises, it is natural that its value, relative to other goods, should rise. We would just be repeating the problems of fiat to transfer this money on an arbitrary basis. I'll write a post with more detail about this soon.

Want to thank me for this post? Donate here! Flip your coins over to: 13Cq8AmdrqewatRxEyU2xNuMvegbaLCvEe  Smiley
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
July 14, 2010, 01:08:10 PM
 #31

Also, "I am not asking for the work to be decreased so hundreds of new coins will be flooding the network in an inflationary spiral, but rather asking that the value of the coins generated be decreased instead to compensate for the increase in the number of users" reduces the value for all other users compared to where it would be otherwise. I don't see the point of that. If demand for the currency rises, it is natural that its value, relative to other goods, should rise. We would just be repeating the problems of fiat to transfer this money on an arbitrary basis. I'll write a post with more detail about this soon.

I fail to see how this is a problem too.  I would love to see more details on this, as the value of the blocks being developed was at one time going to be dropped anyway... this is more of a matter of when rather than if.  It doesn't reduce the value of the coins for all other users, but rather distributes the coins more uniformly throughout the network when coins are generated.  It also does not decrease the value of existing bitcoins that have already been generated.

If you have very difficult blocks to generate (taking weeks, months, or even years to generate depending on equipment and system architecture) you have a flood of coins coming from one person when the new coins are successfully generated.  If instead the value of the new coin blocks is lowered as the network grows (and I'm not necessarily saying that this is the only solution, but is a solution to this issue) you have the same number of coins being generated.... but by many more people holding smaller amounts individually.

Now I'll admit that coming up with a mathematically sound proof trying to calculate what the relationship between these two variables might be for the current hash algorithm is a bit difficult in terms of complexity, but I think it can be shown that the relationship of BITCOINS = TIME * LUCK is at least a roughly correct statement for how coins are generated.  I do think that an algorithm for creating more coin blocks with less effort, but having those coin blocks be of lesser value can be done that would not flood the marketplace with new coins.  Even if the formal mathematical relationship for dropping the value of the new coin blocks compared to the amount of work performed isn't precisely accurate, a rough approximation could happen that could be compensated for quickly within the network when the new value is set for the lower value per coin block being generated.

The coins are being generated, and the rate of inflation of this currency (for bitcoins) has already been established.  I am not asking here to change that relationship at all, but rather to suggest that the coins that are being generated can and ought to be disbursed to more people when it does happen rather than to be in the hands of just a few individuals with really good computers or access to supercomputers (or similar facilities like a university computer lab).  This is a political decision to be made here, not a technical issue.  If the goal is the keep new coins in the hands of very few and experimental researchers with access to really good computer equipment, then the political goal has been achieved with the current system.  I just think that isn't necessarily a good thing.
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
July 14, 2010, 01:38:13 PM
 #32

New users cant print fiat money either.The point is not the generation but the fact you can transact without causing a debt to be created and the anonymous characteristics of bitcoins.When they start putting rfid chips into cash money I for one will be exchanging fiat for bitcoins as fast as possible.No one ever said moving to a new system is perfect.If you want/need bitcoins people will accept goods and services for them.It is enough for me to know that the printing presses cant be turned on whenever they need to fight a war.

The whole point of the architecture is to keep the currency supply stable, and the number of coins being generated under some kind of control.  In case you haven't noticed, Bitcoins are fiat money too.  In addition, individual units of most fiat currency can be monitored with simply tracking the serial numbers.  As an example, you might want to look at this website:

http://www.wheresgeorge.com/

If you have some U.S. Dollars in your wallet, you might want to enter the serial numbers to see where they have been and who has used them before you.

If you thought spending paper money was an anonymous task, I hope that this website doesn't weird you out too quickly.  The only difference that this makes compared to putting an RFID chip into the money is that this particular network is completely voluntary and comes from ordinary people and not from the government.  Banks, retail stores, and other organizations certainly could track individual bills if the effort was made, and the serial numbers could be made with OCR characters, bar codes, or some other very simple technology if the government was serious about tracking the bills themselves.  Simply put, the technology is already "out there" to perform this task and there is no need to put in an RFID device into paper currency or coins for that matter.  Get ready to put on your tinfoil hat if you got one.

The point here is how the initial coins are distributed and who controls the means of production.  In the case of a government currency, it is the government that controls the means of production through laws and specialized police agents that enforce and prosecute those laws.  At the same time (and the fault of normal government-backed fiat currencies) there are politicians who want to inflate the currency to get their way out of debts and to avoid collecting taxes.  That is in effect a way to tax people without it being seen in the paycheck, but is done anyway.  Over this past year, the Federal Reserve has created several trillion dollars out of nothing... and I have no idea what is going to happen when that finally works it way through the system.

For bitcoins that isn't the case, but the means of production are instead enforced through mathematical relationships and the rules of the network.  Violation of those rules simply gets any coins generated outside of those rules to be ignored.  Because of the nature of how bitcoins are generated, there is no central authority that can arbitrarily inflate the currency.... other than the core developer team (at the moment).  Even that relationship can be altered so that no single person or even software implementation can change the arrangement.  What I'm suggesting here doesn't change that relationship at all, even though it might require some changes to the rules in the network to get implemented.
knightmb
Sr. Member
****
Offline Offline

Activity: 308
Merit: 258



View Profile WWW
July 15, 2010, 07:56:59 AM
 #33

I wonder what other possibilities there are though.. some of the new people hooked up hundreds of computers (someone said 300 workstations?) so the network adjusted difficulty.  To give you some perspective, in all the time it has been running the difficulty rose to 23.  The previous jump was very large, it went from 19 to 23.  When all the new users showed up it jumped from 23 to 45.  It's based on fast the new blocks are showing up, if they're being generated very quickly then the difficulty jumps accordingly to target 1 block every 10 mins average.
Up to 337 now  Wink

I'm not a shadow interest group/government/blah/whatever either, just here to help the community. So even though the total khash/s of all the combined PC is around 350,000 khash/s last I checked doesn't mean I win a block every 10 minutes, the luck factor still plays a large part in it. That's why I have so much respect for how they set this up.  Cool

Timekoin - The World's Most Energy Efficient Encrypted Digital Currency
xterm11 (OP)
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
July 27, 2010, 10:31:43 PM
 #34

Wow.  It's been running nonstop ever since I posted.  Still no coins!   Cheesy
claw
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
August 14, 2010, 11:43:59 AM
 #35

So, I heard about this on 8 August and fired it up on two machines -- one is a modern eight-core and the other, seven years old.  My first transaction was generated on the fast machine in about 30 hours.  No transactions since on either machine.  Did the rate of block generation slow down since the tenth?  That's what I'm guessing from the discussion here, but as a noob, I'm not really sure how to be sure or where to check these changes.  Did I immediately precede Bitcoin being slashdotted?
BitLex
Hero Member
*****
Offline Offline

Activity: 532
Merit: 505


View Profile
August 14, 2010, 01:25:06 PM
 #36

So, I heard about this on 8 August and fired it up on two machines ...
Did the rate of block generation slow down since the tenth?
No, it didn't,
last step up was on 5th August, next will be tomorrow i guess.

if you're running bitcoin with the server, you could just call 'getdifficulty',
or simply check the difficulty-history here.

claw
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
August 15, 2010, 11:24:29 AM
 #37

OK, so then why did I generate my first transaction in a day and a half and my second transaction hasn't yet been generated -- after something like 4.5 days?  That first transaction has been accumulating confirmations in the status and is up to 1158.  Am I supposed to tell the client to move on?  Does it have to go to a certain level before moving on to generating the next transaction block?  It still lists a fluctuating khash/s figure so I assumed it was working on the next block(s), but there's clearly something (probably fundamental) about Bitcoin that I'm not getting.
BitLex
Hero Member
*****
Offline Offline

Activity: 532
Merit: 505


View Profile
August 15, 2010, 11:38:44 AM
 #38

because you've been lucky on your first day and a half and had less luck since then.
block generation is kind of a lottery, you might win, or not,
it's not like you are supposed to generate a block each X hours/days.

gridecon
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 15, 2010, 12:00:22 PM
 #39

because you've been lucky on your first day and a half and had less luck since then.
block generation is kind of a lottery, you might win, or not,
it's not like you are supposed to generate a block each X hours/days.
Actually, I would say that is incorrect. The randomness means that you will see a lot of "spread" around the expected target time to generate a block, but over the long term, you should DEFINITELY see the expected "a block each X hours/days" ratio emerge from the data. The bitcoin calculator website will tell give you this data based on your khash/sec. I'm sure you know these things, but I'm stating them for the benefit of the new poster who I think might be misled by your statement.

The difficulty level has just increased again substantially, so it has become even harder for a user with relatively modest computational resources to personally verify their client is interacting with the generation process across the network correctly. I feel this is a bit of challenge for both building user confidence and trust and also the debugging process. Recently for instance from version 0.3.6 to 0.3.8 coin generation was broken in 64-bit linux clients, but this bug took awhile to be detected despite users running that client version, because the bug symptom of "not generating blocks" was more or less identical for the user to the expected behavior of generating blocks very slowly due to the high difficulty!

Anyway, even when everything is working correctly there is no guarantee your behavior will match statistical expections apart from over the very long term. At current difficulty, a standard desktop's expected time to generate a coin block may be a few weeks even with 24/7 operation.
BitLex
Hero Member
*****
Offline Offline

Activity: 532
Merit: 505


View Profile
August 15, 2010, 12:12:55 PM
 #40

over the long term your totally right, but we're talking about 4,5(+1,5) days here.



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