This may be a dumb question, but if a new block is added to the block chain every 10 minutes, then this means that an award of 25 coins (currently) goes to whomever found the right hash. So, what happens next? If you have been working on a hash for the 10 minutes and you did not solve it, then essentially you start over with a new hash to solve, correct?
How are all the machines notified to stop working on the current block hash and then know what the contents are of the next block to solve? If all machines "reset" after 10 minutes, then I would imagine you must need some pretty damn fast processing to have a shot of winning any coin, correct?
Thanks for any clarifications to this.
- Joe
Block generation is a very clever thing. Transactions are broadcast to the network by the sender, and all peers trying to solve blocks collect the transaction records and add them to the block they're working to solve.
However, the individual miners may receive knowledge of transactions in different order, select transactions to include in blocks by different rules, or may not yet have received every transaction that is currently unconfirmed. Therefore, each miner has an individual subset of the same set of unconfirmed transactions.
Once a block is found, then ALL the peers get a notification that a new block was found and they add it to their respective chains. That is how all the peers stay synchronized on the same chain.
One thing not to get confused about is when a block is solved on the network pools/workers don't really "start over" they just start hashing different data. It also doesn't take a block being solved to change the data being hashed, for example, new transactions can trigger new work being sent to the miners.