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.
- Low power consumption: Uses only a few watts, making it perfect for 24/7 operation.
- Affordable hardware: Entry cost is minimal compared to dedicated servers.
- Expandable storage: Supports external SSDs for handling growing blockchain data.
- Educational value: Learn blockchain architecture from the ground up.
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:
- Install Ubuntu LTS on a Raspberry Pi 4 Model B
- Configure system settings for optimal performance
- Mount and auto-mount external storage for blockchain data
- Compile and run Core-geth for Ethereum or Ethereum Classic
- Monitor synchronization and node health
Step 1: Hardware and Software Requirements
Before beginning, ensure you have the following components:
- Raspberry Pi 4 Model B (4 GB RAM or higher)
Core-geth requires at least 4 GB RAM. While swap can compensate slightly, 4 GB is strongly recommended. - MicroSD Card (16 GB or larger)
Holds the operating system. Use a high-quality card (Class 10 or UHS-I) for reliability. - USB-C 5.1V 3A Power Supply
Stable power delivery prevents crashes during sync. - External SSD or HDD (500 GB or more recommended)
The Ethereum mainnet blockchain exceeds 1 TB for archival nodes and grows daily. A fast SSD significantly improves sync times. - Ethernet Cable (Recommended)
Wired connection ensures stable, high-speed internet—critical during initial synchronization. - Computer with SD Card Reader
For flashing the Ubuntu image onto the microSD card. - Internet Connection
Minimum 10 Mbps recommended; faster connections reduce sync time.
Step 2: Install Ubuntu on Raspberry Pi
Begin by installing Ubuntu Server 20.04 LTS (or latest LTS version) optimized for Raspberry Pi.
- Download the official image from ubuntu.com.
- Flash it to your microSD card using tools like Raspberry Pi Imager or Balena Etcher.
- 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/24Look 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 -yInstall Required Tools
sudo apt install unzip htop make build-essential -yInstall Go Programming Language
Core-geth is written in Go, so install it via Snap:
sudo snap install go --classicStep 4: Assign a Static IP Address
A static IP ensures consistent remote access and network stability.
Check current IP:
ip addr showEdit the netplan configuration:
sudo nano /etc/netplan/50-cloud-init.yamlModify 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: 2Apply changes:
sudo netplan applyReboot to confirm persistence:
sudo rebootStep 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 -lAssuming your drive is /dev/sda, format it:
sudo mkfs.ext4 /dev/sdaCreate mount point and mount:
sudo mkdir /mnt/ssd
sudo mount /dev/sda /mnt/ssd
sudo chown -R ubuntu:ubuntu /mnt/ssdAuto-Mount on Boot
Get the UUID of the drive:
sudo blkidAdd to /etc/fstab:
UUID=your-uuid-here /mnt/ssd ext4 defaults 0 0Verify after reboot:
df -h | grep ssdStep 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/swapfileMake permanent by adding to /etc/fstab:
/mnt/ssd/swapfile none swap sw 0 0Step 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 gethMove binary to system path:
sudo mv build/bin/geth /usr/local/bin/Verify installation:
geth versionStep 8: Run Your Ethereum Node
Create a dedicated directory for blockchain data:
mkdir /mnt/ssd/ethereumStart syncing in fast mode:
geth --syncmode fast --cache 256 --datadir /mnt/ssd/ethereum --httpFor Ethereum Classic:
geth --classic --syncmode fast --cache 256 --datadir /mnt/ssd/classic --httpRun in background:
nohup geth --syncmode fast --datadir /mnt/ssd/ethereum > geth.log 2>&1 &Monitor resource usage:
htopFrequently 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.