XMR/USD
$324.18
0% 1 HR
24HR Change
-1.2%
Price
$324.18
Market Cap
$5.979B

Running a Monero Node on a Raspberry Pi 5: Complete 2026 Guide

> Tutorial > Running a Monero Node on a Raspberry Pi 5: Complete 2026 Guide

Running a Monero Node on a Raspberry Pi 5: Complete 2026 Guide

Running your own Monero node is the single most impactful thing you can do for both your privacy and the network’s health. When you connect your wallet to someone else’s node, you’re telling that node operator which transactions and blocks you’re interested in – effectively leaking your transaction patterns. Your own node eliminates that trust requirement entirely.

The Raspberry Pi 5 makes this practical and affordable. With 8GB of RAM, a USB 3.0 SSD, and minimal power consumption, it runs a full Monero node 24/7 for about $15 a year in electricity. This guide walks through the complete setup from bare hardware to a running, synced node.

Hardware Requirements

Raspberry Pi 5 (8GB RAM model). The 4GB model works but syncing will be significantly slower and you’ll have less headroom. The 8GB version is worth the extra cost.

USB 3.0 SSD, 500GB minimum. The Monero blockchain is approximately 150GB and growing. A 500GB drive gives room for growth and a pruned node. For a full archival node, consider 1TB. Don’t use an SD card or USB flash drive – they’re too slow and will wear out from the constant read/write operations.

Reliable power supply. The official Raspberry Pi 5 27W USB-C power supply is recommended. Underpowered supplies cause stability issues.

Ethernet connection (recommended). WiFi works but introduces latency and potential connection drops during sync. A wired connection is more reliable for a node that should be running continuously.

MicroSD card (32GB). Just for the operating system. The blockchain lives on the SSD.

Operating System Setup

Install Raspberry Pi OS Lite (64-bit)

Use the Raspberry Pi Imager to flash Raspberry Pi OS Lite (64-bit) to your microSD card. Choose the Lite version – there’s no need for a desktop environment on a headless node.

During imaging, configure:

  • Hostname (e.g., monero-node)
  • SSH access enabled
  • Username and password
  • WiFi credentials (if not using Ethernet)

Insert the microSD card, connect the SSD, plug in Ethernet, and power on. SSH in from another computer.

Initial System Configuration

Update the system first:

sudo apt update && sudo apt full-upgrade -y

Install required dependencies:

sudo apt install -y git build-essential cmake pkg-config libssl-dev libzmq3-dev libunbound-dev libsodium-dev libboost-all-dev libpgm-dev libnorm-dev libgtest-dev screen ufw exfat-fuse

Mount the SSD

Format the SSD with ext4 if not already formatted:

sudo mkfs.ext4 /dev/sda1

Create a mount point and configure auto-mount:

sudo mkdir /mnt/monero
sudo mount /dev/sda1 /mnt/monero

Add to /etc/fstab for automatic mounting on boot:

/dev/sda1 /mnt/monero ext4 defaults,noatime 0 2

Set ownership:

sudo chown -R $USER:$USER /mnt/monero

Installing Monero

Option A: Pre-Built Binaries (Recommended)

Download the latest ARM64 release from getmonero.org:

wget https://downloads.getmonero.org/cli/linuxarm8

Extract and move to a standard location:

tar -xvf linuxarm8
sudo mv monero-aarch64-linux-gnu-* /opt/monero
sudo ln -s /opt/monero/monerod /usr/local/bin/monerod
sudo ln -s /opt/monero/monero-wallet-cli /usr/local/bin/monero-wallet-cli
sudo ln -s /opt/monero/monero-wallet-rpc /usr/local/bin/monero-wallet-rpc

Verify the PGP signature before proceeding. Download the hash file and signature from the same page, import the signing key, and verify.

Option B: Build From Source

Building from source on a Raspberry Pi 5 takes 2-4 hours but ensures you’re running exactly what’s in the repository:

git clone --recursive https://github.com/monero-project/monero.git
cd monero
git checkout $(git tag | tail -1)
make -j4

The compiled binaries will be in build/Linux/release/bin/.

Configuring the Node

Create a configuration file at /mnt/monero/monerod.conf:

# Data storage
data-dir=/mnt/monero/data

# Network
p2p-bind-ip=0.0.0.0
p2p-bind-port=18080
rpc-bind-ip=127.0.0.1
rpc-bind-port=18081

# Pruning (recommended for Pi - reduces storage from ~150GB to ~50GB)
prune-blockchain=1

# Performance tuning for Pi 5
db-sync-mode=safe:sync
block-sync-size=10

# Logging
log-file=/mnt/monero/monerod.log
log-level=0

# Bandwidth limits (optional - prevent saturating your connection)
out-peers=16
in-peers=32
limit-rate-up=2048
limit-rate-down=8192

# DNS checkpoints for faster sync
enforce-dns-checkpointing=1

Key Configuration Decisions

Pruning vs Full Node: A pruned node stores only 1/8 of the blockchain data (~50GB vs ~150GB). It still validates all transactions and serves recent blocks to peers. For a Pi, pruning is recommended unless you’ve a 1TB+ drive.

RPC binding: Binding RPC to 127.0.0.1 means only software running on the Pi itself can query the node. If you want to connect from wallets on other devices on your local network, bind to 0.0.0.0 and add confirm-external-bind=1 and restricted-rpc=1.

Bandwidth limits: The defaults allow the node to use your full internet bandwidth. Setting limits prevents the node from interfering with other household internet usage.

Running the Node as a System Service

Create a systemd service file at /etc/systemd/system/monerod.service:

[Unit]
Description=Monero Node
After=network.target

[Service]
User=pi
Type=simple
ExecStart=/usr/local/bin/monerod --config-file /mnt/monero/monerod.conf --non-interactive
Restart=always
RestartSec=30
Nice=10
IOSchedulingClass=2
IOSchedulingPriority=7

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable monerod
sudo systemctl start monerod

Check status:

sudo systemctl status monerod

View logs:

journalctl -u monerod -f

Initial Blockchain Sync

This is the patience-testing part. Initial sync on a Raspberry Pi 5 takes anywhere from 3 to 7 days depending on your internet speed, SSD performance, and whether you’re running a pruned or full node.

Monitor sync progress:

monerod status

Or watch the log for sync progress indicators. The sync speed will vary – early blocks are smaller and sync quickly, while recent blocks take longer due to larger transaction volumes.

Tip: If you’ve a faster computer available, you can sync the blockchain there first and then copy the data directory to the Pi’s SSD. This can reduce the initial sync from days to hours.

Connecting Your Wallet

Once the node is synced, configure your Monero wallet to use it.

From the same Pi: The wallet automatically connects to 127.0.0.1:18081.

From another device on your network: Point your wallet’s “Remote Node” setting to the Pi’s local IP address (e.g., 192.168.1.100) port 18081. Make sure the monerod.conf allows external RPC connections.

From outside your network (advanced): Set up a Tor hidden service or WireGuard VPN to access your node remotely without exposing RPC to the internet.

Securing the Node

Firewall: Configure ufw to allow only necessary ports:

sudo ufw allow 22/tcp (SSH)
sudo ufw allow 18080/tcp (P2P – needed for other nodes to connect)
sudo ufw enable

Don’t open port 18081 (RPC) to the internet unless you’ve configured authentication and know what you’re doing.

Automatic updates: Subscribe to the Monero announcements channel to stay informed about required upgrades, especially before hard forks.

Monitoring: Use a simple script or tool like monit to alert you if the node goes down or falls behind in sync.

Tor Integration for Maximum Privacy

Running your node over Tor prevents your ISP from seeing that you’re operating Monero infrastructure.

Install Tor:

sudo apt install -y tor

Add to /etc/tor/torrc:

HiddenServiceDir /var/lib/tor/monero/
HiddenServicePort 18080 127.0.0.1:18080
HiddenServicePort 18081 127.0.0.1:18081

Restart Tor and find your .onion address:

sudo systemctl restart tor
sudo cat /var/lib/tor/monero/hostname

Add to monerod.conf:

anonymous-inbound=YOUR_ONION.onion:18080,127.0.0.1:18080,16
tx-proxy=tor,127.0.0.1:9050,16

This routes all node-to-node communication through Tor while still allowing local wallet connections.

Frequently Asked Questions

Can a Raspberry Pi 4 run a Monero node?

Yes, but the Pi 5’s faster CPU and memory significantly improve sync times and overall responsiveness. If you already have a Pi 4 (4GB+), it works. If buying new, get the Pi 5.

How much bandwidth does a node use?

A synced node with default settings uses roughly 10-50GB per month depending on peer count and network activity. With the bandwidth limits in the configuration above, this is capped at manageable levels.

Do I need to keep the node running 24/7?

For the best experience, yes. A node that’s always on stays synced and provides instant wallet connectivity. If you shut it down, it needs to catch up when restarted, which takes time proportional to how long it was offline.

Will the FCMP++ upgrade affect my node?

FCMP++ was activated via hard fork. If your node software is up to date (post-fork version), it already supports FCMP++. Ensure you upgrade before any future hard forks by following official announcements.

Can I mine on the same Pi?

Technically possible but not practical. A Raspberry Pi 5 produces negligible hashrate compared to modern CPUs, and the mining process would slow down node operations. If you want to mine, use a separate, more powerful computer.


Leave a Reply

Your email address will not be published. Required fields are marked *