How to Set Up an Ethereum Node on Raspberry Pi

·

Running your own blockchain node is a powerful step toward decentralization, privacy, and network participation. One of the most accessible and energy-efficient ways to achieve this is by setting up an Ethereum node on a Raspberry Pi. This guide walks you through deploying a fully functional Ethereum (or Ethereum Classic) node using Core-geth on a Raspberry Pi 4 Model B with Ubuntu LTS, leveraging external storage for long-term scalability.

Whether you're a developer, crypto enthusiast, or privacy advocate, hosting your node reduces reliance on third-party services and strengthens the overall resilience of the Ethereum ecosystem.

👉 Discover how running your own node boosts blockchain independence—start exploring today.


Why Run a Node on Raspberry Pi?

Traditional Ethereum nodes often run on high-powered servers or cloud instances, which can become costly and energy-intensive. A Raspberry Pi, however, offers a low-cost, low-power alternative ideal for personal use.

This setup supports Ethereum (ETH), Ethereum Classic (ETC), and various testnets—ideal for developers testing dApps or users verifying transactions independently.


What You’ll Learn

By following this guide, you'll be able to:


Step 1: Hardware and Software Requirements

Before beginning, ensure you have the following components:


Step 2: Install Ubuntu on Raspberry Pi

Begin by installing Ubuntu Server 20.04 LTS (or latest LTS version) optimized for Raspberry Pi.

  1. Download the official image from ubuntu.com.
  2. Flash it to your microSD card using tools like Raspberry Pi Imager or Balena Etcher.
  3. Insert the card into the Pi, connect Ethernet and power, then boot the device.

Once booted, access the Pi via SSH from another computer:

ssh ubuntu@<raspberry-pi-ip-address>

If you don’t know the IP address, scan your local network using nmap:

nmap -sn 192.168.1.0/24

Look for the device labeled "Raspberry Pi Foundation."

👉 Learn how decentralized infrastructure empowers users like you—explore next steps now.


Step 3: Initial Server Setup

After logging in, update the system and install essential tools.

Update System Packages

sudo apt-get update && sudo apt-get upgrade -y

Install Required Tools

sudo apt install unzip htop make build-essential -y

Install Go Programming Language

Core-geth is written in Go, so install it via Snap:

sudo snap install go --classic

Step 4: Assign a Static IP Address

A static IP ensures consistent remote access and network stability.

Check current IP:

ip addr show

Edit the netplan configuration:

sudo nano /etc/netplan/50-cloud-init.yaml

Modify it to include your static settings:

network:
  ethernets:
    eth0:
      addresses: [192.168.1.144/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 4.2.2.2]
  version: 2

Apply changes:

sudo netplan apply

Reboot to confirm persistence:

sudo reboot

Step 5: Mount External Storage

Blockchain data should be stored on an external SSD to avoid filling the microSD card.

Identify and Format the Drive

List available drives:

sudo fdisk -l

Assuming your drive is /dev/sda, format it:

sudo mkfs.ext4 /dev/sda

Create mount point and mount:

sudo mkdir /mnt/ssd
sudo mount /dev/sda /mnt/ssd
sudo chown -R ubuntu:ubuntu /mnt/ssd

Auto-Mount on Boot

Get the UUID of the drive:

sudo blkid

Add to /etc/fstab:

UUID=your-uuid-here /mnt/ssd ext4 defaults 0 0

Verify after reboot:

df -h | grep ssd

Step 6: Add Swap Space

Swap memory prevents out-of-memory crashes during intensive sync phases.

Follow best practices to add 2–4 GB of swap space on your external SSD:

sudo fallocate -l 4G /mnt/ssd/swapfile
sudo chmod 600 /mnt/ssd/swapfile
sudo mkswap /mnt/ssd/swapfile
sudo swapon /mnt/ssd/swapfile

Make permanent by adding to /etc/fstab:

/mnt/ssd/swapfile none swap sw 0 0

Step 7: Install Core-geth

Core-geth is a robust Ethereum client supporting ETH, ETC, and testnets.

Clone and compile:

git clone https://github.com/etclabscore/core-geth.git
cd core-geth
make geth

Move binary to system path:

sudo mv build/bin/geth /usr/local/bin/

Verify installation:

geth version

Step 8: Run Your Ethereum Node

Create a dedicated directory for blockchain data:

mkdir /mnt/ssd/ethereum

Start syncing in fast mode:

geth --syncmode fast --cache 256 --datadir /mnt/ssd/ethereum --http

For Ethereum Classic:

geth --classic --syncmode fast --cache 256 --datadir /mnt/ssd/classic --http

Run in background:

nohup geth --syncmode fast --datadir /mnt/ssd/ethereum > geth.log 2>&1 &

Monitor resource usage:

htop

Frequently Asked Questions (FAQ)

Q: Can I use a Raspberry Pi with less than 4 GB RAM?
A: It's not recommended. While possible with heavy swap usage, sync performance will degrade significantly, and crashes are likely.

Q: How long does initial sync take?
A: Depending on your internet speed and SSD performance, expect anywhere from 6 to 48 hours for a fast sync on Ethereum mainnet.

Q: Do I need an external SSD?
A: Yes, especially for mainnet. The blockchain exceeds hundreds of gigabytes and grows daily—microSD cards lack capacity and endurance.

Q: Can I access my node remotely?
A: Yes. Enable HTTP RPC (--http) and configure firewall rules if needed. Always secure remote access with authentication.

Q: Is Core-geth still actively maintained?
A: While community-supported, consider alternatives like Geth (official) or Erigon for future-proofing, though Core-geth remains solid for ETC and ETH.

Q: What can I do with my node once it's running?
A: Query blockchain data directly, interact with smart contracts, validate transactions, run dApps locally, or support the network as a peer.


Final Thoughts

Setting up an Ethereum node on Raspberry Pi is a practical and sustainable way to engage with blockchain technology. With modest hardware and careful configuration, you gain full control over your data and contribute to decentralization.

As blockchain networks evolve, personal nodes will play an increasingly vital role in trustless verification and network health.

👉 Take control of your digital future—see how blockchain empowerment starts with one click.