Possible to estimate next difficulty based on terahashes? [duplicate]

This question already has an answer here:

Here is what I have estimates on: There exists hardware capable of 60 gigahashes per second. Over the next few months, X amount of these will be mining bitcoins.

Difficulty is recalculated every 2016 blocks. X * 60,000 megahashes = Y terahashes to total mining.

At current difficulty it will take a machine calculating at 60 gigahashes about 3.6 days to solve 1 block. With just 700 of these machines each solving 1 block every 3.6 days, difficulty will be at Z within a week, where difficulty is then recalculated to even out the time period of solving blocks (if I understand correctly).

The variable I have is about what the implications are of the algorithm for difficulty. Is it intended for there to only be a finite number of blocks solved in a certain timeframe?

marked as duplicate by Murch♦, Stéphane Gimenez, Dr.Haribo, cdecker, Nick ODellOct 31 '13 at 8:41

Is it intended for there to only be a finite number of blocks solved in a certain timeframe?

Yes. The intended rate is 1 block per 10 minutes, which is 144 blocks per day, which is 2016 blocks every 2 weeks.

To estimate the difficulty, flip around the "time to generate a block at a hash rate" equation

difficulty=((Time for a block to be found in seconds)*(hashes per second))/2^32

Where the time is 600 and the hashrate is whatever you want.

• Okay, so I believe 516355284882773000000.00 will be the difficulty once 600 new machines processing at 60 gigahashes/sec come online. Does this look correct to you? I simply added it to an existing hashrate of 3.6134E+13 and it doens't take into account a drop in participants – CQM Mar 13 '13 at 2:22
• @CQM - I do not see how you are getting that result. Doing (600*(34Thash+36Thash))/2^32, I get 9,778,887. 34Thash is the current rate and 36Thash is 60Ghash*600. It's somewhat more than double the current difficulty (4,367,876), which is what one would expect from somewhat more than doubling of the network hashing rate. – Compro01 Mar 13 '13 at 14:26

This is a old question, but I'd like to give some precisions:

• You can calculate the new difficulty with the very simple formula newDifficulty=currentDifficulty*600/averageTimeBetweenBlocksSinceLastDifficultyChange; your question is about calculating it from hash speed, the formula given by Compro01 is correct

• averageTimeBetweenBlocksSinceLastDifficultyChange can be computed from the hash power with the formula powerInHashesPerSecond=currentDifficulty*2^32/averageTimeBetweenBlocks ie averageTimeBetweenBlocks=currentDifficulty*2^32/powerInHashesPerSecond which are the exact same formula Compro01 said