Bitcoin Forum

Bitcoin => Bitcoin Discussion => Topic started by: gigabytecoin on April 06, 2011, 08:03:13 AM



Title: How Does BitcoinCharts.com Know The Network Total Hashes/Second?
Post by: gigabytecoin on April 06, 2011, 08:03:13 AM
As seen in the top all black nav bar of http://bitcoincharts.com/markets/

How do they determine the number of terahashes/second, currently at 0.735 Thash/s???

Isn't a hash only submit to the network once it has been deemed to be below the target value?

Is the network hash rate just an estimate?


Title: Re: How Does BitcoinCharts.com Know The Network Total Hashes/Second?
Post by: Grinder on April 06, 2011, 09:15:02 AM
I think it's guessing using a combination of the known current difficulty and how quickly blocks are currently being solved.


Title: Re: How Does BitcoinCharts.com Know The Network Total Hashes/Second?
Post by: Pieter Wuille on April 06, 2011, 09:50:19 AM
Is the network hash rate just an estimate?

Yes, and a very tough one to make.


Title: Re: How Does BitcoinCharts.com Know The Network Total Hashes/Second?
Post by: gigabytecoin on April 06, 2011, 06:20:28 PM
Is the network hash rate just an estimate?

Yes, and a very tough one to make.

Ok thank god. I thought I was going nuts there for a second.

I'm a man of logic. And the speed with which that number sways every few hours doesn't make sense given the nature of mining.


Title: Re: How Does BitcoinCharts.com Know The Network Total Hashes/Second?
Post by: Jim Hyslop on April 07, 2011, 03:56:25 AM
Is the network hash rate just an estimate?

Yes, and a very tough one to make.
Actually, it's not that hard.

The wiki states somewhere (can't find the page now, of course) that the probability of a single hash calculation solving a block is

      target
     -------
       2256

and the average number of hashes required to solve a block is its inverse:

       2256
     -------
     target

Let's call that last formula A. On average, then, it takes A hashes to solve a block. We know how long it takes to create a particular block (just take its creation timestamp and subtract the timestamp of the previous block from it). So the network hash rate is simply A / timespan.

Of course, individual blocks will be highly variable due to the random nature of finding a solution (there were about 3 or 4 blocks recently that were created within 5 minutes; the block before that series took 20 minutes, as did the block after). To get a more accurate estimate, you'd want to take the time over 50 or 100 blocks. The formula is:

      2256 * n
-----------------------
target * (tsN - tsN-n)

where
n is the number of blocks you're sampling
tsx is the timestamp of block number x
N is the latest block number (or whatever block number you want to end your sample range with)
and target is currently 0xCBBD000000000000000000000000000000000000000000000000