Ethereum: Clients

return to the Ethereum Standards

Source: What exactly is an Ethereum Client

An 'Ethereum client' is a term referring to any node able to parse and verify the blockchain, its smart contracts and everything related. It also allows you/provides interfaces to create transactions and mine blocks which is the key for any blockchain interaction.

Official reference implementations (CLI)

There are currently three reference Command Line Interfaces (CLI) implementations available, as you already highlighted:

eth - C++ client of the webthree project. It was formerly known as cpp-ethereum: https://github.com/ethereum/webthree-umbrellageth - Golang client of the go-ethereum project: https://github.com/ethereum/go-ethereumpyethapp - Python client of the pyethereum project: https://github.com/ethereum/pyethappAll clients should work the same, from the user's perspective. They provide the same interfaces and so on. For example, if you launch a DApp or the Ethereum Wallet or a DApp browser instance, it should not note any difference in communicating with the client.

Official reference implementations (GUI)

Graphical clients available to the Ethereum core developers are:

mist which works on top of geth or eth and aims to be a DApp browser and currently implements the ethereum-wallet-dapp. https://github.com/ethereum/mistalethzero is internally called the hardcore client but it's being deprecated. https://github.com/ethereum/alethzero

Third party implementations (CLI)

Non-official clients implementing the yellow paper specification are:

parity - Rust client by ethcore: https://github.com/paritytech/parityethereumj - Java client by the ether.camp team: https://github.com/ethereum/ethereumjethereumjs-vm - Ethereum Virtual Machine in Javascript: https://github.com/ethereumjs/ethereumjs-vmethereumH - Haskell client from consensys, but it's not developed anymore: https://github.com/jamshidh/ethereum-client-haskellruby-ethereum - Ruby client: https://github.com/janx/ruby-ethereumnode-blockchain-server - simple Javascript server: https://github.com/ethereumjs/node-blockchain-servercppethereumhethereumjs-libethereum_jgo-ethereumparitypyethappruby-ethereum