Running Ethereum nodes, having your node hosted by a third party, and choosing which Ethereum clients to use is a complicated process only simplified by learning more. Which client — the software platform used to connect to the Ethereum blockchain — is best for your purposes and needs? In this article, we’ll introduce the terms you need to know, and insight into how each type of client software functions to help guide your informed decisions as blockchain and web3 technology continues to grow and evolve.
Three Types of Ethereum Nodes
There are three types of Ethereum nodes: full node, light node, and archive nodes. The most commonly used nodes are either full or lightweight, as archive nodes aren’t beneficial for the average node operator. A “node” is any instance of Ethereum client software connected to other computers running Ethereum client software, forming a network.
Full nodes store the entire blockchain and participate in block validation by verifying all blocks and blockchain states, ensuring the continued integrity of the Ethereum blockchain. It can take weeks for full nodes to sync every block on the chain and every transaction ever recorded to provide data on request. The main disadvantage of running full nodes is they’re incredibly expensive and demand a lot of resources.
Lightweight nodes sync block headers rather than every block on the Ethereum chain and don’t require nearly the level of performance hardware and high bandwidth required for operating full nodes. Block headers contain summaries of each block's content and request data from full nodes when more information is needed. Light nodes can verify the received data against the state roots contained in the block headers.
Light nodes don’t require the intensive amount of data storage that full nodes do, making them advantageous for low-capacity devices like smartphones and embedded tools.
Archive nodes build an archive of historical blockchain states by storing everything in the full node. The average node operator isn’t interested in using archive nodes, but they benefit users such as block explorers, wallet vendors, and those doing chain analytics.
What Are Ethereum Clients?
Ethereum clients are the software that runs Ethereum nodes, with geographically diverse node locations strengthening the blockchain for all users. Clients verify data against the protocol rules, keeping the network secure. The client downloads a copy of the Ethereum blockchain and verifies the validity of each block with new blocks and transactions added automatically.
Ethereum consists of two layers: the execution layer and the consensus layer, each running on different types of client software.
Also known as the Execution Engine, EL client, or, formerly, the Eth1 client, execution clients listen to new transactions being broadcast to the network, executes them in EVM, and hold the latest state and database of all Ethereum data.
Go Ethereum (GETH)
Commonly referred to as “Geth,” Go Ethereum is the official Golang implementation of the Ethereum protocol and the most popular Ethereum client. With the largest user base and a vast range of tools written in Go, Geth is an open-source client licensed under the GNU LGPL v3 that’s popular with both consumers and developers.
Geth can create any type of node; full, light, or archive. Users install Geth with a package manager targeted towards a local machine by running it as a Docker container or, sometimes, by constructing it from scratch.
Hyperledger Besu, often referred to as “Besu,” the open-source Ethereum client was developed with Java under the Apache 2.0 license and operates on both public and private networks like Rinkeby, Ropsten, and Görli. Besu includes a command line interface and JSON-RPC API for running, maintaining, debugging, and monitoring Ethereum nodes. The Besu API supports common Ethereum functionalities such as Ether mining, developing smart contracts, and developing decentralized applications (dApps).
To install Besu, you’ll need to use Homebrew or Java JDK, run it as a Docker container, or construct it from scratch.
Erigon was developed as a re-architected Go Ethereum fork focused on speed and saving disk space. While written in Go, it’s been indicated that future plans for the Ethereum client will see it ported to other languages. By using the Erigon client, a full archive node sync can be completed in under three days and use less than 2 TB of disk space for data storage.
Erigon is a good option for setting up a node because it includes features such as efficient state storage, initial high-speed sync via preprocessed data, reduced writing amplifications, and can separate JSON-RPC daemon to connect to local and remote databases.
Nethermind is an open-source Ethereum client licensed under the LGPL-3.0 and written in the C# .NET tech stack, able to run on all major platforms. With Nethermind, it’s simple to integrate with current tech infrastructure while remaining stable and reliable, with data integrity and security maintained.
Nethermind is used to create private Ethereum networks and dApps with the following functionalities and tools: an optimized virtual machine, Prometheus/Grafana dashboards, plugins for analytics, seq enterprise logging support, state access, and JSON-RPC tracing.
Also known as the Beacon Node, CL client, or, formerly, the Eth2 client, consensus clients implement the proof-of-stake consensus algorithm, enabling the network to achieve agreement with validated data sent from the execution client.
Lighthouse is a leading open-source Ethereum consensus client written in Rust, licensed under Apache 2.0, and focused on security and performance. While a leading consensus client used by more than 33% of the network, at this time, Lighthouse’s creators, the information security and software engineering firm Sigma Prime are encouraging users to use another client if possible. If the Lighthouse client reaches a supermajority of over 66% of the network, a bug could cause the chain to split incorrectly and lead to slashing.
Lodestar maintains public repository libraries to provide valuable tools for their client and the wider Ethereum network, including BLS, SSZ, Discv5, Gossipsub, and Noise libraries.
Prysm is a full-featured Ethereum proof-of-stake client written in Go that anyone can use to participate in blockchain consensus. Its developer, Prystmatic Labs, focuses their development of blockchain technical infrastructure on usability, security, and reliability. Prysm contains full beacon node implementation and a validator client, includes tools for production servers and interprocess communication using Google’s gRPC library, BoltDB as a key-value store, and libp2p for peer-to-peer networking.
Nimbus is an Ethereum consensus client specifically designed to efficiently use resources, enabling Nimbus clients to run with high performance on lightweight devices like smartphones and Raspberry Pi’s. Running Nimbus on high-grade, powerful servers results in free resources that can be used on other tasks, such as running an Ethereum execution node.
Nimbus provides beacon nodes with integrated validator client, a stand-alone validator client with sentry node support, remote signing with Web3Signer, performance analysis tools, validator monitoring, and external block-building support.
Teku is an open-source Ethereum consensus client written in Java containing full beacon node implementation and a validator client. Teku includes the functionalities to propose and attest to blocks, enterprise-focused metrics with Prometheus, REST APIs for managing consensus layer node operations, and external key management to manage validator signing keys.
Benefits of Running Your Own Ethereum Node
There are many benefits to running your own Ethereum node and many reasons for capable users to do so beyond increasing the network’s security and reliability.
Privacy and Security
Using a public Ethereum node risks leaking your personal information, such as IP address and Ethereum addresses. With your own dedicated node, your Ethereum wallets can interact with the blockchain securely and privately. You won’t need to trust anyone when using your own node, and invalid transactions are automatically disregarded.
Fully Censorship Resistant
With your own dedicated Ethereum node, you ensure consistent, 24/7 access to the blockchain that can never be censored. A public node could block and deny transactions from certain IP addresses or transactions made in specific amounts. With your own node, your transactions are broadcast to the rest of the network without delay or censorship of any kind.
The more Ethereum nodes there are in geographically diverse locations, the more resilience the network achieves by diminishing the reliance on possible points of failure, such as centralized cloud servers.
Having a Say in Chain Fork Events
When a chain fork is imminent — meaning two chains emerge with their own rules — running your own Ethereum node ensures you’ll have a choice whether to implement the changes proposed by one chain or deny them. With third-party nodes, you don’t get a choice in which chain’s rules you support.
Disadvantages of Running Your Own Ethereum Node
Running your own dedicated Ethereum node is a goal for many crypto and blockchain/web3 enthusiasts and provides many excellent benefits. However, the main disadvantage is it’s incredibly cost-prohibitive if you plan to run a full node, requiring high-end hardware and consistent maintenance, vast amounts of free disk space, and a lot of time-consuming tasks.
Beyond the initial 3-6 months it will take to establish a functional Ethereum node with the required blockchain infrastructure, there are many technical issues to deal with on a regular basis.
High Maintenance Costs
Most users running their own node have high-end hardware and need large amounts of free disk space with a minimum of 500 GB, which will need to scale up over time as the blockchain grows. The setup for a single node alone averages around $86,000/year in maintenance costs, $2,000-$5,000/month in AWS costs, and approximately $4,800/month in engineering. You’ll also need an unmetered internet connection or risk incurring steep charges from your internet provider for exceeding upload limits.
Running an Ethereum node entails dealing with complex technical issues every few days, if not daily, even once your node is fully established. Common issues include CPU spikes, disk issues, memory leaks, database corruption, and problems with transaction broadcasting.
Benefits of Using a Cloud API Node Provider
Remote Procedure Call nodes, known as RPC nodes, such as those provided by QuickNode, completely alleviate the troubles and issues that come with operating your own dedicated node. You’ll receive support, operational services, and other benefits you’d not have access to if running your own full node. When you run a node yourself, you are the support team, and you’re responsible for the continued operational integrity of your node.
Blockchain infrastructural professionals like the team at QuickNode, are experts at everything full, light, and archive node operation entails. Third-party cloud API RPC node providers have access to the highest quality hardware and tech talent. In the long run, it saves most would-be personal node operators large amounts of money, time, and other resources.
QuickNode, the leading end-to-end developer platform, is transforming Web3 and blockchain infrastructure by simplifying dApp development and providing high-performance access to 20+ blockchains. Since 2017, QuickNode has empowered hundreds of thousands of top developers and companies to focus on innovation by accelerating dApp build times and offering enterprise-grade solutions to businesses of every size.