I'm trying to understand how nodes propagate new valid blocks in Ethereum.

Here's my attempt at a step by step how description of the process:

1. Miner constructs a new block and starts iterating the nonce to try to match the difficulty target
2. Miner finds a nonce that meets the difficulty target
3. Miner sends the new winning block to (say) 6 peers
4. These peers validate the block
5. If the block is valid, these peers update their copy of the state and pass the block on to (say) another 6 peers. If the block is not valid, the peers ignore the block
6. This process is repeated until the new block propagates to the entire network

Is the above process roughly correct? If not, what about this process is incorrect?

Thank you!


I am new to ethereum, but here's my understanding.

First, nodes and miners are different types of objects in ethereum network. For example, nodes run geth or parity, and miners run ethminer. One node could have a pool of miners to distribute PoW computation.

Each node connects to several peer nodes. A client (e.g. wallet app) creates transactions and submits them to a node. The node immediately advertises these transactions to its peers. The peers do the same to propagate the transactions to all nodes in the network.

When a node receives a valid block from a peer, it

  1. imports the block to its local chain and propagate the block to other peers;

  2. builds a new "open" block from its local store of outstanding transactions and instructs its miners to start mining this new block.

  3. When the node receives a valid seal (PoW) from a miner, it immediately advertises the block to its peers, and go back to step 2.

The transaction selection is controlled by block gas_limit and max profit.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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