google.com, pub-7590763259720133, DIRECT, f08c47fec0942fa0
 

Part 3 - Node Operator's Configuration Guide for Dummies - ETH Clients



Part 3 - ETH Clients

Part 3 - ETH Clients


Rocket Pool ETH1 & ETH2 Clients

Rocket Pool's Smartnode installer can transform your machine into a full ETH1 and ETH2 node, as it requires both clients to operate properly.


ETH1 Clients

Out of the box, Rocket Pool supports three different ETH1 clients: Geth, Infura, and Pocket.


Geth

Geth (formally named Go Ethereum) is one of the three original implementations (along with C++ and Python) of the Ethereum protocol. It is written in Go, fully open-source, and licensed under the GNU LGPL v3.


Geth is very popular and widely used on ETH1 nodes around the world. It is also currently the only full client that Rocket Pool's installer supports. This means that it stores a copy of the ETH1 chain on your machine. It interacts via peer-to-peer communications with other ETH1 nodes to record and verify new blocks and transactions. By running a Geth node, you contribute to the decentralization and overall health of the ETH1 network.


Geth runs as a single process. It is multithreaded, meaning it can take advantage of your entire CPU. Its RAM usage is configurable, down to a minimum of about 2 GB. This makes it viable for low-power systems.


Geth is compatible with all four of the ETH2 clients.


Infura

Infura is a web service that provides instant access over HTTPS and WebSockets to the Ethereum and IPFS networks. It is a light client, meaning that it can be interacted with just like a local ETH1 node for information about the chain's state or to submit transactions; however, it doesn't require a full node on your local machine. Instead, Infura essentially hosts a full node and gives you remote access to it. This convenience comes at a cost: using a light client does not contribute to the decentralization of Ethereum, and instead adds a somewhat centralized component (as you are now depending on it as an external service).


Infura has several pricing tiers, including a free tier for low amounts of usage. Rocket Pool may fit into the free tier, depending on what you do with your node. Because of this restriction, it is possible to exceed the limits of the free tier, which will prevent Rocket Pool from working correctly. We, therefore, do not recommend using Infura regularly for production, but it is a useful fallback for periods where your local ETH1 client is down for maintenance.

WARNING If you choose a light client, you are trusting that it will represent the ETH1 chain accurately and pass your transactions onto the network without modifying or abusing them. You do not have control over the remote node that you're connecting to, and you must accept any risks that come with using it.

Pocket

Pocket is a decentralized peer-to-peer network of thousands of independent nodes that service requests for a variety of blockchains, including Ethereum. Like Infura, Pocket is a light client. It is constructed from routers, relays, and nodes that combine to listen for incoming blockchain requests, execute them on a node for the blockchain of choice and transmit the response back to the original caller.


Pocket is an interesting option for running a light client, in that it does not have a truly centralized component. While using it doesn't contribute to the decentralization of Ethereum, it also doesn't rely on a single-point-of-failure, making this an attractive option for situations where a light client is necessary.


Pocket normally relies on users paying for transactions via their POKT token, but they have agreed to allow Rocket Pool node operators to use their network free of charge.


One potential downside of Pocket is that it cannot support WebSockets based on the nature of the protocol, so it is incompatible with the Nimbus ETH2 client.

WARNING If you choose a light client, you are trusting that it will represent the ETH1 chain accurately and pass your transactions onto the network without modifying or abusing them. You do not have control over the remote node that you're connecting to, and you must accept any risks that come with using it.


ETH1 Client Comparison Table



ETH2 Clients

Rocket Pool's installer is proud to support all four currently available ETH2 clients: Lighthouse, Nimbus, Prysm, and Teku.


Each of these is a full client, meaning you will contribute to the decentralization of the ETH2 network regardless of which client you choose.


All four clients are quite low-risk, low-maintenance, and will generate practically identical total rewards from validation. They differ slightly in terms of resource requirements and features, but you cannot go wrong with any of them.


By default, the Rocket Pool installer will offer to select a random ETH2 client for you. This will help contribute to the overall diversity of the network. This is important from a security perspective: if one client is used by a majority of nodes and suffers from a severe bug or attack, it might cause all of those nodes to fail and thus threaten the entire Beacon Chain's stability.


NOTE As of January 2022, the distribution of clients on the Beacon Chain looks roughly like this:

Data obtained from Miga Labs


The overwhelming majority of users are currently using Prysm. In the interest of supporting the health of the Beacon Chain, we currently recommend that you consider using a different client. Here are some relevant articles about why even client diversity is crucial to the health of the Beacon Chain if you would like to learn more:


For users that would like to get up and running quickly, the random client option may be the best choice. For users that have a specific client they'd like to use in mind, we provide the ability to easily choose one during Rocket Pool's installation. The options below help to describe each client, so you can make an informed decision if you'd like to specify which one you want.


Lighthouse

Lighthouse is an open-source Ethereum 2.0 maintained by Sigma Prime. It implements the Ethereum 2.0 specification as defined by the Ethereum Foundation Research team.


Lighthouse is a cutting-edge distributed systems project implementing technologies at the forefront of blockchain research; including proof-of-stake consensus, parallel transaction execution, and state separation (sharding).


Lighthouse has no official affiliation with the Ethereum Foundation and will continue to follow its guidance as long it remains in the best interest of the Ethereum protocol and the community surrounding it.


Lighthouse is implemented in Rust and will maintain a focus on security and efficiency.


Nimbus

Nimbus is a client implementation for both Ethereum 2.0 and Ethereum 1.0 that strives to be as lightweight as possible regarding resources used. This allows it to perform well on embedded systems and resource-restricted devices - including Raspberry Pis and mobile devices.


However, resource-restricted hardware is not the only thing Nimbus is good for. Its low resource consumption makes it easy to run Nimbus together with other workloads on your server (this is especially valuable for stakers looking to lower the cost of their server instances).


Nimbus is written in Nim and maintained by the Status.im team


Prysm

The Prysm project is a full-featured implementation for the Ethereum 2.0 network written entirely in the Go programming language


Created by Prysmatic Labs, Prysm implements the official Ethereum 2.0 specification(opens new window), which is the product of an ongoing collective research and development effort by various teams across the Ethereum ecosystem including the Ethereum Foundation


Teku

Teku (formerly known as Artemis) is a Java-based Ethereum 2.0 client designed & built to meet institutional needs and security requirements. PegaSys is an arm of ConsenSys dedicated to building enterprise-ready clients and tools for interacting with the core Ethereum platform.


Teku is Apache 2.0 licensed and written in Java, a language notable for its maturity & ubiquity.



ETH2 Client Comparison Table


55 views0 comments