Clients are implementations of the Ethereum blockchain; they have various features. In addition to having a regular wallet, a user can watch smart contracts, deploy smart contracts, clear multiple Ether accounts, store an Ether balance, and perform mining to be a part of the PoW consensus protocol.
There are various clients in numerous languages, some officially developed by the Ethereum Foundation and some supported by other developers:
- Geth: Based on the Go programming language, sometimes also known as go-ethereum
- Parity: Based on the Rust programming language, and developed by Ethcore
- cpp-ethereum: Built on C++ and officially developed by the Ethereum Foundation
- Pyethapp: Based on the Python programming language, and officially developed by Ethereum
- ethereumjs-lib: Based on the JavaScript programming language
- Ethereum(j): A Java-based client, developed by Ether camp
- ruby-ethereum: A Ruby-based client, developed by Jan Xie
- ethereumH: A Haskell-based client, developed and maintained by BlockApps
The preceding list consists of some of the most prominent Ethereum-specific clients currently in production. There are many other clients apart from these that are not heavily community-backed or are in their development phase. Now let's discuss the most prominent Ethereum client—Geth, or go-ethereum.