1

While familiarizing myself with Ethereum, I found multiple security alerts referring to consensus issues, most notable those that arose because the geth and the parity client handled certain edge cases differently. However, I also noted that parity nodes do not mine transaction them-self. So when a parity client for example accepts an invalid transaction, why would that cause a fork of the blockchain since the nodes do not really mine themselves (But rather for example ethminer). Or is it that ethminer does not validate the blocks, but the parity client does?

1 Answer 1

1

While you're correct that ethminer or whichever miner you choose does the mining itself, not the client, the block and block header that the mining is done on is created by the client, usually either Parity or Geth. This means that, if there is a consensus issue, blocks mined by one of these wont be accepted by the other.

Aside from that, consensus issues can still arise if only one of the clients is constructing blocks. If Parity and Geth process a transaction differently, then if Geth mines the block, Parity will see that block as invalid since the state root will be different. This is still a consensus issue.

2
  • Thanks! So say the Geth node mines a block, then parity will reject this block upon syncing with the network (in case of a consensus issue)? Commented Dec 4, 2018 at 15:10
  • Correct. When Parity receives the new block, it first verifies the mining work, then it runs all the transactions in the block on the state the Parity node has. Then it'll calculate the root hashes in the block header. If the root hashes don't match, then the block is thrown out due to a consensus bug.
    – natewelch_
    Commented Dec 4, 2018 at 15:21

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.