Where does the data come from?

enter image description here

2 Answers 2


As RedGrittyBrick already wrote, the difficulty to create new blocks is adjusted every 2016 blocks. The difficulty provides an expected amount of hashes performed to find a block, which allows a general estimate how much hashrate exists on the network. Additionally, some websites compare the number of published blocks with the expected number of blocks found to provide a higher resolution than whole difficulty periods. Since blocks are found in a random process, these charts often jump around a lot as even a constant hashrate can have a large variance of blocks found per day.

As an example, let's take a look at this chart of Blocks per Day for the last three months. The blocks found range from 89 on 2022-12-24 to 180 on 2023-01-06. enter image description here
via transactionfee.info

Meanwhile, the self-reported hashrate of mining pools in the last three months looks like this: enter image description here
via miningpoolstats.stream

While we do see a drop in the self-reported hashrate on Christmas Eve (partially explained by an extreme winter freeze in Texas that had miners yield power for heating homes) that aligns with the lowest block count, the self-reported hashrate ranges between 200 EH/s and 287 EH/s while the block count maximum is double the minimum.

This is underscored when we compare the self-reported figures with miningpoolstats.stream's estimated hashrate on the network:enter image description here
via miningpoolstats.stream

So, the hashrate can be estimated from the difficulty of the blocks and the count of blocks found, but the random process makes it easy estimate much larger swings than seem to be present in the actual hashrate.

  • Great data! The shorter the sampling period, the more noise is in the result. I guess anything less than a day does not make sense, and even one day is too short. From the swings in this graph I guess the websites that I've seen use approx. one day as sampling period (e,g, coinwarz.com/mining/bitcoin/hashrate-chart).
    – OptOut
    Commented Jan 12, 2023 at 21:40

The total network hashrate can be estimated from the network difficulty recorded in the block headers over a reasonable sample period.

There is a relationship between the two because the difficulty is adjusted every 2016 blocks (about two weeks at 10 minutes per block) with the aim of keeping block production rate near constant as total network hashrate changes.

See How can I calculate network hashrate for a given range of blocks where difficulty changes somewhere within the range? for calculation

  • When you say network difficulty recorded in the block headers here are you referring to the difficulty of the solution accepted by the network (over a sample period)?
    – Poseidon
    Commented Feb 7, 2023 at 19:01
  • 1
    @Poseidon, yes I was referring to the fifth data item described at en.bitcoin.it/wiki/Protocol_documentation#block : "bits" ... "The calculated difficulty target being used for this block " -- Looking at a period spanning a recalculation would give you an idea which direction the hashrate is trending. Murch's answer describes ways to get greater precision. Commented Feb 7, 2023 at 19:26
  • Ok thank you, I find this relevant because the bits is just the target difficulty while the network accepted solution difficulty represents the actual difficulty solved by a miner. They are relatively similar though.
    – Poseidon
    Commented Feb 7, 2023 at 19:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.