I know that new blocks are relayed one block per 10 minutes but that time is not exact but average so: Who decides that the new block is ready to hash?

  • 1
    Note: There is no "one" block before the hashing starts. Every miner creates their own block and starts hashing on it. They're all different unique blocks by definition. Blocks often change while the hashing is already underway, for example when new transactions are received. – Jannes Apr 28 '16 at 9:42
up vote 2 down vote accepted

A new block is ready to hash as soon as the last block has been solved. Miners immediately start to try solving the next block. As soon as one of them succeeds, that block is published and all the miners move to work on the following one.

The difficulty is adjusted so that a solution is found by somebody, out of all the active miners, on average about once every 10 minutes.

  • How does it happen that there was a situation that 3 blocks was relayed in 3 minutes? That's impossible that more than 50% of miners had so huge hashing power to solve the block in 1 minute... – Xawery Wiśniowiecki Apr 28 '16 at 0:46
  • 1
    @XaweryWiśniowiecki: The time to solve each block is determined only by chance. In the case you described, different miners got lucky and found a solution quickly three times in a row. This has nothing to do with 51%. – Greg Hewgill Apr 28 '16 at 0:48
  • Block is added to blockchain if more than 50% of miners say that it is solved correctly. And to do it they also have to solve it and compare results... – Xawery Wiśniowiecki Apr 28 '16 at 0:49
  • 2
    @XaweryWiśniowiecki: All the other miners don't have to solve the block again, because they already have a solution. They only have to verify that the solution is correct, which is a simple calculation. – Greg Hewgill Apr 28 '16 at 0:54
  • Thanks. Do you know any article about solving and verifing calculations? I was mistaken by some article I have read :/ – Xawery Wiśniowiecki Apr 28 '16 at 1:00

Each miner starts working on a new block, as soon as they hear about the latest one being found.

To that end, miners create block candidates and apply the hashing function. As the outputs are determininistic, yet unpredictable, this is effectively a random process where each attempt has a minuscule chance of surpassing the target difficulty.

Whenever one miner manages to find a block candidate that is below the target, they have successfully found a new block. This could happen seconds after the previous block was found, or much later. The difficulty is kept at a level such that in average it is expected to take 10 minutes.

After a block is found, the miner sends it to his peers which redistribute it. Every recipient can simply check that it fulfills the criteria, and then will start working on a successor.

In addition to the other explanations, it's important to understand that verification of a block takes significant amount of time, and it's consequences.

After a new block is found by a miner, this block is propagated to the rest of the network, including other miners. When other miners receive this news, they have to make a decision.

Should they wait to verify the block first before starting on the next block or start immediately on the next block, and assume that the previous block was legit. The benefit of making the assumption is that there won't be any wasted time spent mining blocks that will stale (orphan), which increases their profit significantly (on the order of ~10%).

As a result, many large mining pools skip this verification process and immediately starts work on the next block.

Your Answer

 
discard

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

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