source: Mastering Ethereum, Chapter 3 by Andreas Antonopoulos


Ethereum clients are software applications

  • communicate over peer-to-peer network
  • implement Ethereum specification

a client interoperates if it complies with the communication protocols

  • also the ethereum specification (defined in the Yellow Paper)

The code for all major Ethereum clients is open source

There are currently six main implementations of the Ethereum protocol (written in different languages)

  • common clients are Parity (rust) and Geth (go)

Ethereum Networks

There are a bunch of networks

  • they conform to the Ethereum Yellow Paper specification
  • they don’t interoperate with each other

Running a full node

the more independently operated and geographically dispersed full nodes there are, the healthier the blockchain

There exists a mainnet, but you can do almost everything with a testnet or a local private blockchain

a remote client is like a wallet that offers an API

  • does not validate block headers or transactions
  • trusts a full client for access to the blockchain

Light Clients validate block headers and transactions (unlike remote clients)

  • they have a similar level of security to a full node

Running a full node is a hassle, but you’re able to do more on the blockchain

Running a testnet node is much easier and there aren’t any stakes