Dorokhov.codes
03. Ethereum Clients
Full-node clients
There are many implementations of the Ethereum protocol, written in different languages:
Name | * | Language | Comment |
---|---|---|---|
Geth | Setting up | Go | Most popular client, actively maintained. |
Nethermind | C# | High-performance client, actively maintained. | |
Parity Ethereum | Setting up | Rust | Deprecated, no longer maintained. |
cpp-ethereum |
C++ | Deprecated, no longer developed. | |
pyethereum |
Python | Mainly used for testing and research purposes. | |
Mantis | Scala | Developed for Ethereum Classic, mostly inactive now. | |
Harmony | Java | Deprecated, did not gain wide adoption. |
We can install them manually or using package managers, Docker-containers.
Requirements
Disk space. These links provide up-to-date estimates of the blockchain size:
Remote clients
Remote clients can be used to connect to existing networks, such as your own full node, a public blockchain, a public or permissioned (proof-of-authority) testnet, or a private local blockchain. In practice, you will likely use a remote client as a convenient way to switch between all of the different node options.
Examples of remote clients:
- MetaMask.
- Emerald Wallet.
- MyEtherWallet.
- MyCrypto.
A full node running on a live mainnet network is not necessary for Ethereum development. You can do almost everything you need to do with a testnet node (which connects you to one of the smaller public test blockchains), with a local private blockchain like Ganache, or with a cloud-based Ethereum client offered by a service provider like Infura.