Running Ethereum Full Nodes: A Guide for the Barely Motivated
Running an Ethereum full node might seem like a complicated endeavor, but, despite what you might have heard on Twitter, it it turns out to be easy.
Are you a procrastinator or slightly lazy but still want to support the Ethereum network directly?
This post is for you.
This article covers the experience of setting up and running a DAppNode system along with alternatives for running a dedicated hardware node without expending too much time, money, and effort.
Not only does the free open source software package DAppNode contain everything you need to near-instantly set up a computer as a dedicated server running an Ethereum full node and more, DAppNode and Avado also sell prebuilt systems that you can plug in and set up in an hour’s time.
If you know enough about Ethereum to have found this article, you’re the kind of person that should be running a hardware Ethereum node at home. Pick the option that works best for you and go for it.
Someone else will do it, right?
Only a tiny fraction of the people who spend their days arguing online about cryptocurrency platforms bother contributing to the health and success of these systems. This is due to lack of direct financial incentive and the misconception that running a node is difficult and requires a high degree of expertise.
Another source of friction is that most people today use laptops for their primary computer. Just about any consumer laptop sold today with sufficient SSD storage should easily run a full node, but when sleeping they get out of sync. Turn on your computer and the node starts to sync and the fans spin up, you might get an instant or two of slowdown — end result, you uninstall the node software.
Desktop systems are less popular today, but if you have a recent one with an SSD you should be all set to just download the Geth client and let it run in the background without any major issues. Be sure to leave it on and adjust your system settings to prevent it from hibernating when not actively in use.
However, for most enthusiasts, the answer is a dedicated system. I maintain that simple, plug-it-in-and-it-works hardware is the key to creating resilient physically decentralized networks.
DAppNode is the best option available today to run dedicated full nodes with minimal effort and it come with added benefits.
The Avado DAppNode
I had previously run full nodes on my laptops, but the minor annoyances I mentioned above led to me uninstalling them.
In late 2018 I first heard about DAppNode, a free open source software package that sets up a computer to run an Ethereum full node, an IPFS node, and a VPN that lets you manage it all from a simple web interface. A true lazy nerd’s wonderland — you can deploy Ethereum testnet nodes, nodes for other chains, and other software packages all with a single click.
To install you load up the image on a USB thumb drive and plug it into a dedicated PC. It includes the operating system and all required packages; the installer sets up the Debian Linux distribution and walks you through the process.
Eh… could still be simpler.
Then I heard about Avado: they were selling preconfigured hardware boxes with DAppNode running and the node already synced at the time of shipping. Plug it in, follow the brief instruction sheet, and you’re good. (Since then, DAppNode itself has began selling hardware systems as well.)
So, I placed an order using DAI, and soon after a box arrived from Switzerland with the contents packed in a crumpled copy of the Ethereum white paper and an accompanying hand-written thank you note.
This particular system acts as a WiFi access point, so to set it up I just plugged it in, connected to its default network with my phone, then navigated to the specified URL to follow the guided setup. No monitor or keyboard required.
The next step was setting up OpenVPN which generates a downloadable configuration file. Install the OpenVPN software on any device you’d like to use your DAppNode with and load the configuration file.
Once that’s done you just navigate to my.dappnode in any browser and you’re greeted with the system’s web UI.
You can manage the system remotely from any device. This allows you to monitor system performance, check the status of your running nodes, and install new software with a few clicks.
If you’re running the default DAppNode software and your node didn’t come pre-synced, you may spend the first two to four days checking this screen constantly as you wait for your full node to finish syncing.
A key part of what makes DAppNode so appealing is that you can easily deploy other types of nodes on the same system with a few clicks. These packages are stored using IPFS (a peer-to-peer distributed file system) with the latest releases referenced on the Ethereum blockchain, so you’ll need to be fully synced before the Installer screen populates. DAppNode systems run an IPFS node as part of their core system software.
Each additional piece of software installed from here can be monitored on the dashboard and has separate configuration screens if you want to view logs or tweak parameters. Some packages here offer, or will eventually offer, passive income just for running them such as state channel hubs, Swarm, and Vipnode.
Developers who want to take advantage of the growing network of DAppNode systems can package their own software for easy deployment as well — new options have been steadily popping up since launch.
DAppNode brings some additional cool benefits to the table. When connected via VPN, websites using ENS and IPFS will display properly in any browser without the need for plugins. It’s like having X-ray specs for the decentralized web. Once you’re set up, check out Almonit.eth for a directory of decentralized sites. The included IPFS node is also easily manageable via its WebUI and makes it simple to add files yourself.
Setting up MetaMask and other software you’re using, such as Augur, to point to your node instead of publicly hosted services like Infura is simple. In MetaMask, go to Settings → Network → Add Network and enter the above URL then select DAppNode from the drop down list of networks at the top. That’s it.
You can further diminish reliance on centralized services by sharing your node with people you know by providing them with your OpenVPN configuration file.
But wait! There are a few additional considerations!
Once your system is properly configured there’s not a whole lot to worry about, but it’s not 100% hands off. You won’t have to vigilantly watch for updated client software — just check the dashboard periodically for notices that updates are available and click “Update”.
Sometimes those updates might cause an issue and there’s no tech support hotline. You’ll have to hop on Telegram or Riot Chat and paste in details regarding your problem to get assistance from the team or another user. The good news is that the DAppNode team is responsive and the community is steadily growing.
And, brace yourself, there will likely come a day when you have to peek under the hood at the command line. It’ll be a very rare occurrence and you’ll have help from the community if you’re trying to fix something specific. If you set up your system without a monitor and keyboard you can just plug them in and reboot. However, I’d recommend installing OpenSSH on your system so you can log into the command line remotely from your primary computer. You might not believe me now, but if you get that far you’re going to start playing around with Linux and possibly even enjoy it. Pretty soon you’ll be setting up a Tor bridge and other projects and perhaps find that you weren’t all that lazy after all, you just needed to get started.
For your node to accept inbound connections you’ll need to follow directions to open a few ports on your router. This process varies for different hardware but it should be straightforward and just take you a few additional minutes after setup.
You can see the specific ports that needed to be open for each package you run by selecting it in the WebUI then clicking, unsurprisingly, “Ports”.
This summer, Avado decided to fork DAppNode to remove the mandatory requirement that an Ethereum node be run so that they could offer low price systems to support other chains. In particular, for $299 they offer a mini-computer that can be used to run a Bitcoin or Monero full node in addition to the other DAppNode core packages. This allows them to offer a far more powerful system than Casa at a better price point.
The trade-off is that they must centrally maintain a storefront with the IPFS hashes of the most recent software packages rather than relying on data on the Ethereum blockchain itself.
I am still running the original DAppNode package so I can’t comment on the fork, but I understand it to otherwise be comparable except for some tweaks to the web UI.
There are fewer options for preconfigured hardware nodes today than there were at the beginning of the year. There really are no current direct competitors to DAppNode and Avado, but there are still ways of running a node cheaply and resources to help walk you through setup.
Raspberry Pi 4 Model B
Grégoire Jeanmart of Kauri wrote this excellent step by step guide to running a Geth full node on a Raspberry Pi.
This guide is incredibly detailed and walks you through the parts you need to purchase and the exact commands you need to enter to get your system configured and synced. Even if seeing a command line interface turns your stomach, with a little patience you should be fine following the guide.
If you don’t already have a computer with an SSD siting around unused, this is the cheapest dedicated hardware option for running a full node. $160 will cover you, but you’ll probably want to spend a few extra dollars for a case with a fan.
The trade-offs for the low overall cost is that you will require a solid afternoon of tinkering to get going. If cost was preventing you from running a full node and the instructions seem palatable, this is the option for you.
If the RaspberryPi hobbyist approach appeals to you and you want a slightly more powerful system you could opt for a NanoPC and load Ubuntu as your OS then follow the rest of Grégoire’s instructions for the above build. Cost of supplies is approximately $240.
Bruno Skvorc previously sold assembled and synced nodes at cost via Block & Mortar, but recently closed up shop. The parts list and some additional details are still available on the website in case you want to take on this project on your own.
To give you a sense of what you could do with the additional processing power, Bruno was shipping these devices running Geth nodes, IPFS, Status, and Swarm.
ETH on ARM
Since initially publishing this article, the creator of ETH on ARM reached out regarding their project: downloadable images that include everything you need to turn various single board computers like the NanoPC T4, PINE RockPRO64, and the Raspberry Pi into a full Ethereum node.
Much like loading DAppNode for a full scale computer, you simply put the image for your system onto a MicroSD card and it installs Linux, sets up your Ethereum client software, and even includes additional packages for Raiden, IPFS, Vipnode, Swarm, and even Prysmatic Labs’ Prysm ETH 2.0 testnet client. The system will auto-update your packages, however don’t expect the hand-holding of the DAppNode WebUI.
Despite some additional steps, having everything you need to get up and running on low cost hardware in a single download still qualifies for this piece! You can find the images and instructions for the NanoPC T4 and RockPRO64 here and the Raspberry Pi 4 version here.
Roll Your Own
Got a spare desktop PC with a 512gb or larger SSD or one that you could easily set up with an external SSD? You’ve got a lot of options but it’s beyond the scope of this article.
Linux is your best bet for a server, but if you find that daunting it’s still easy to run an Ethereum full node on Windows or MacOS: just install, keep the box connected, and be aware that you’ll need to manually update your software periodically.
If you want to take your node out of the box ready to rock ‘n roll, the best choice for most people is a preconfigured system from DAppNode or Avado.
I would opt for either the mid-tier DAppNodeBasic (~$640 with free shipping) or the Avado i3 ($735 with free shipping). Either one includes absolutely everything you need — just plug it in and follow the setup instructions. The Avado lets you choose whether or not you want to run an Ethereum node and acts as a wireless access point for easier setup and providing IPFS and ENS support in the browser of any connected device without plugins. Either of these options has the added benefit of contributing support to two deserving teams.
Now that I have a bit more experience, if I started over knowing what I know now I would buy a well equipped Intel NUC minicomputer and install DAppNode myself from a thumb drive.
I’d advocate a system with at least an i5 processor, a 512gb SSD, and 8gb of RAM. This Intel mini PC on Amazon fits the bill for a very capable server at $585. To save money you could opt for a near identical system with an i3 for $470.
Step it up accordingly if you think you might want to use your DAppNode to run nodes for multiple chains or other server software. For reference, my Avado i3 has an Intel i3–7100u and I maxed out when running the core DAppNode packages (including a Parity full node), a Goerli testnet node, and syncing a Geth Ethereum full node all at once. (But it was possible!)
DAppNode is the easiest and best way to run a node to support Ethereum and other decentralized networks. You don’t need to buy a pre-built pre-synced system but it’s worth doing and it makes the process really easy.
The software is steadily improving: it’s getting easier to use, more packages are becoming available regularly, and opportunities are starting to appear to earn passive income just from running a server.
Make Ethereum stronger by taking a couple hours of your time to setup a permanent node and you’ll find you had some fun and learned a lot through the experience.
Besides, taking on a new project is the perfect distraction from all the other things you’ve been meaning to get around to!
Visit DAppNode and Avado to learn more and purchase a prebuilt system.
My DMs are open on Twitter — please reach out if this article led to you running your own node at home!
Thanks to fellow DAppNode aficionado Mariano Conti for input.