Official definition of an Ethereum client.

nsubrahmnsubrahm Member Posts: 4
As a newbie, I found it surprising that, this link calls out the various clients and choosing between them, without formally defining what is an Ethereum client. As I see it, an Ethereum client should do the following:
  1. Node discovery and communication
  2. An EVM container
  3. Generate and store confirmed blocks
  4. Expose end-points for external communication
What else would you like to add?


  • o0ragman0oo0ragman0o Member, Moderator Posts: 1,291 mod
    The formal specification of Ethereum Virtual Machine which is the core functionality of Ethereum is the Yellow Paper.

    Additionally the Ethereum protocol is an extensible set of protocols which clients can implement and currently include:
    • eth: The main blockchain protocol.
    • shh: The Whisper live messaging protocol
    • bzz: The Swarm storage layer protocol
    Neither shh or bzz are in production on the live chain.

    The P2P protocol used by clients is called DEVP2P, which is based upon the Kademlia P2P protocol.
    The message/data encoding protocol is called RLP (Recursive Length Prefix).

    Client local DB's typically use LevelDB (Geth) and RocksDB (Parity)
Sign In or Register to comment.