The world of web3 makes it possible for anyone to interact in a different model from the old internet. It is the next evolution of the internet based around the principles of decentralization and anyone can participate. By running your own Ethereum node, you take ownership and help transform how we all interact on the internet.
Here, we will show you the basics on how to run your own Ethereum node. We will start with three different options for setting up a node: third-party nodes, nodes on external servers, and full Ethereum nodes on your own hardware.
What is an Ethereum node?
Lets start with the Basics of Ethereum. Ethereum is a peer-to-peer network with thousands of nodes that must be able to communicate with one another using standardized protocols. The "networking layer" is the stack of protocols that allow those nodes to find each other and exchange information. This includes "gossiping" information (one-to-many communication) over the network as well as swapping requests and responses between specific nodes (one-to-one communication). Each node must adhere to specific networking rules to ensure they are sending and receiving the correct information.
There are two parts to the client software (execution clients and consensus clients), each with its own distinct networking stack. As well as communicating with other Ethereum nodes, the execution and consensus clients have to communicate with each other. This page gives an introductory explanation of the protocols that enable this communication.
Execution clients gossip transactions over the execution-layer peer-to-peer network. This requires encrypted communication between authenticated peers. When a validator is selected to propose a block, transactions from the node's local transaction pool will be passed to consensus clients via a local RPC connection, which will be packaged into Beacon blocks.
Consensus clients will then gossip Beacon blocks across their p2p network. This requires two separate p2p networks: one connecting execution clients for transaction gossip and one connecting consensus clients for block gossip.
Why run an Ethereum node?
Running your own node gives you many benefits - even if you don’t stake ETH for the rewards. These include privacy, security, reduced reliance on others and of course censorship resistance. Overall, you contribute to the decentralization and resilience of the ethereum network.
Most importantly: Don’t trust. Verify (with your own node)!
Third-Party Nodes
The easiest way to set up an Ethereum node is to use a third-party service. There are a number of companies that offer this service, such as Infura and Alchemy. These services provide a simple way to connect to the Ethereum network without having to worry about setting up and maintaining your own node.
Example:
https://www.staderlabs.com/eth/node-operators/
What do I need to run my own node?
A full node is one that runs both an Execution Client and a Consensus Client.
Here is a simple breakdown of what is required to run a full Ethereum node:
A stable Internet connection. The longer you stay online, the better your rewards. A spotty Internet connection will hurt your returns.
At least 10Mbps of bandwidth both up and down. A full node usually takes around 8Mbps to 10Mbps up & down of network traffic, depending on your configuration.
No data cap is imposed by your ISP. Running a full node will take a lot of data - as much as over 2 TB per month of on-chain data alone. This can be mitigated somewhat with a few settings tweaks to the ETH clients, but as a rule of thumb, don't run a full node if your Internet plan comes with a monthly data cap.
Stable electricity. For the same reason as needing a stable Internet connection, you also want to have reliable power. This can be mitigated with a large UPS (backup battery) to deal with short blackouts.
A computer with sufficient specs. This is pretty flexible because it really depends on what Execution and Consensus client you use, and what settings you configure them with. The computer can be a local machine, or it can be a Virtual Private Server (VPS) hosted in the cloud. Read below for some more information on those two options, and how to decide which is best for you.
The following are considered minimum requirements to run a full node:
Linux or macOS Operating System
Quad-core CPU (or dual-core hyperthreaded); both x64 and arm64 are supported
16 GB of RAM (preferably DDR4)
2 TB of free SSD Disk Space: a spinning platter hard drive is not fast enough to handle the constant random reads and writes that blockchain activity requires. You MUST use a solid-state drive.
The ideal setup, and best practice is to have a dedicated computer for staking. Try to limit additional processes running on your staking box. Especially if it is something that is connecting to the outside world. Every extra process and every file being downloaded is another opportunity for an exploit.
Your ETH will be locked into the Beacon Chain until at the earliest mid-2023, possibly later. It makes sense to buy some good hardware. This isn’t like mining with razor-thin margins, it will pay for itself quickly.
Use Linux, it's easy! For the foreseeable future, Linux will receive better support from both the client teams and the community at large. If you choose Linux you will have access to more guides and more technical support from the community at large. Linux is lightweight, stable, secure, and it doesn't force you to restart for updates every other day.
Use a minority client! It is both good for the health of Ethereum and good for the health of your money.
A battery backup (UPS) is strongly recommended! Plug your modem and router into it also. Many ISPs have generators to support emergency services communications, meaning the internet continues to work during a power outage as long as your equipment is powered. Your ISP may be the same. Aside from blackouts, not having your computer shut down on every momentary power flicker is a nice quality-of-life improvement when staking from home.
Everything here applies to both solo staking and being a 16 ETH minipool node operator with Rocket Pool ↗.
Full Ethereum Nodes on Your Own Hardware
The most challenging option is to set up a full Ethereum node on your own hardware. This option is the most expensive, but it gives you the most control and flexibility. You will need to purchase a powerful computer with a lot of storage space. You will also need to install the Ethereum software and configure it to sync with the blockchain.
Which Option is Right for You?
The best option for you will depend on your needs and budget. If you are a beginner, I recommend using a third-party service. If you want more control, you can set up a node on a server. If you want the most control and flexibility, you can set up a full Ethereum node on your own hardware.
Here are some additional tips for setting up your own Ethereum node:
Make sure you have a reliable internet connection. Synchronizing the blockchain can take a long time, so you need to have a good internet connection to avoid any delays.
Choose a secure location for your node. If you are setting up a full Ethereum node on your own hardware, you need to choose a secure location for your computer. You should also consider using a firewall to protect your node from unauthorized access.
Keep your node up to date. The Ethereum network is constantly evolving, so it is important to keep your node up to date with the latest software. This will ensure that you are able to connect to the network and participate in transactions.
Some mentionable Options for running a node:
Raspberry Pi
Price: Lower cost.
Performance: Running an execution and consensus node on a Raspberry Pi is possible. Specifically, Nimbus which was designed to run on devices like a Raspberry Pi. Being able to run Ethereum nodes on low-powered hardware is great for decentralization and an honorable goal. However, running a validator is different. I maintain that the Pi’s lack of processing power and memory is a risk in some situations such as a period with no finalization. The reward of saving a few hundred dollars vs more powerful hardware does not even come close to outweighing the risk of extended downtime due to a lack of processing power or memory.
Power Usage: Approximately 8 watts.
Intel NUC
Price: Medium price.
Power usage: 20-25ish watts.
NUCs are super cute, and their small form factor gives them a very high significant-other approval factor. Unfortunately that does come with a bit of a price premium and slightly less performance than the larger desktop option. However, these are minor drawbacks. This is probably the best option for most people.
DAppNode
Price: Medium price
Performance: The DAppNodeXtreme is a good option if you are looking for a custom built OS with an easy UX. A DAppNode box is just a NUC pre-configured with their software. If you are confident enough to install an OS by yourself, you can save a bit of money by purchasing a normal NUC and installing DAppNode yourself. You can also install the DAppNode OS on any computer. If you don’t want to mess around with installing operating systems and want an easy UX, buying a DAppNode box is a convenient and simple way to get started.
Power Usage: 20-25ish watts.
Virtual Private Server
Price: Anywhere from $20 - $50 per month.
Performance: You can buy as much as you can afford.
Conclusion
If you live somewhere that is prone to natural disaster or has an unstable power grid or internet connection but still want to solo stake, this is a good option. If you do have stable power and internet, running your own hardware will be a cheaper/more profitable solution long term. You need to evaluate the pros/cons of this for your own situation. Remember that if one of the VPS providers goes down, it will mean all of the people using that VPS service to host will also go down, and the inactivity penalties will be much larger than if you have uncorrelated downtime yourself.
It is our goal to enable everyone to build their own nodes- not only on Ethereum but any blockchain that they want to participate in. In the next days we will come up with an example introduction to run your own ethereum node on an Raspberry Pi or Intel NUC.
If you have any questions, please feel free to leave a comment below or join one of our in-person meetups.