pour saint-loup, le taux de hashs par seconde est une grandeur physique qui existe par elle même, elle n'est pas calculée après coup en comptant le nombre de blocks découverts par jour. même si, en y réfléchissant, je ne sais pas comment elle est mesurée.
...
(je remarque en étant en train d'écrire cette réponse que blockchain.com et bitinfocharts.com ne donnent pas les mêmes valeurs quotidiennes, ça c'est bizarre...)
Ca aurait été plus simple que Groswesh donne sa source.
Mais pourtant c'est semble-t-il la methode la plus simple est vraisemblablement celle utilisée par ces sites-là.
Si on sait combien il faut de hashs pour miner un bloc à une difficulté donnée.
Alors il suffit de mesurer le temps qu'il a fallu pour miner ce bloc à cette difficulté pour obtenir le hashrate.
De même que quand tu sais à quelle distance se situe un lieu grâce à un panneau, il te suffit de regarder le temps que tu as mis pour y arriver pour obtenir ta vitesse de déplacement.
To find a block, the hash must be less than the target. The hash is effectively a random number between 0 and 2**256-1. The offset for difficulty 1 is
0xffff * 2**208
and for difficulty D is
(0xffff * 2**208)/D
The expected number of hashes we need to calculate to find a block with difficulty D is therefore
D * 2**256 / (0xffff * 2**208)
or just
D * 2**48 / 0xffff
The difficulty is set such that the previous 2016 blocks would have been found at the rate of one every 10 minutes, so we were calculating (D * 2**48 / 0xffff) hashes in 600 seconds. That means the hash rate of the network was
D * 2**48 / 0xffff / 600
over the previous 2016 blocks.
Can be further simplified to
D * 2**32 / 600
without much loss of accuracy.
At difficulty 1, that is around 7 Mhashes per second.
At the time of writing, the difficulty is 22012.4941572, which means that over the previous set of 2016 blocks found the average network hash rate was
22012.4941572 * 2**32 / 600 = around 157 Ghashes per second.
https://en.bitcoinwiki.org/wiki/Difficulty_in_MiningNote: 0xffff=65535 en base decimale et ** = "puissance"
Sinon, on peut multiplier le hashrate attendu d'un bloc par le coefficient du nombre de blocs trouvés sur le nombre de blocs attendus sur une periode donnée.
The hashrate can be calculated from the expected rate of finding a block (144 a day), the actual rate of finding a block and the current difficulty.
So let's calculate the average hash_rate for a single day:
expected_blocks = 144
difficulty = 11187257.461361 # this is on May 22nd 2013
blocks_found = 155 # Also May 22nd 2013
hash_rate = (blocks_found/expected_blocks*difficulty * 2**32 / 600)
https://bitcoin.stackexchange.com/questions/11139/how-is-the-network-hash-rate-calculated