2

Ethereum wiki introduced many different ethereum clients. https://github.com/ethereum/wiki/wiki/Ethereum-Virtual-Machine-(EVM)-Awesome-List

  • go-ethereum A popular Ethereum client with its own EVM implementation (core/vm directory)
  • Parity in Rust Another popular Ethereum client with its own EVM implementation (ethcore directory)

The questions:

  1. Do different ethereum client have their own EVM?

    1.1 If every client has its own EVM, how to make sure the smart contract has same result when it is executed by different client?

    1.2 If they use the same EVM, what specification does they follow? How can users know they do follow the specitication?(or how do clients make users trust them?)

  2. If there a bug (or update) in ethereum, how to update the clients?

2

Do different ethereum client have their own EVM?

They have own implementation of the EVM, which means EVM is the same and should compile the same EVM code. They are strongly follows the specification of EVM.

If every client has its own EVM, how to make sure the smart contract has same result when it is executed by different client?

Again, they have own implementation of the EVM, they are follow specification and compiles the same EVM code as other clients.

If there a bug (or update) in ethereum, how to update the clients?

There are several possible way how to update clients, one of it is called hard fork.

A hard fork is a change to the underlying Ethereum protocol, creating new rules to improve the system. The protocol changes are activated at a specific block number. All Ethereum clients need to upgrade, otherwise they will be stuck on an incompatible chain following the old rules.

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.