Raspberry Pi 5 Bitcoin node
Quiet and low-power, if you give it an NVMe drive. A microSD card is the one thing that ruins this build.
A Pi 5 is a fine Bitcoin Core machine. The usual failure is storage: someone syncs onto a microSD card, watches it crawl for weeks, and blames Bitcoin. This page is the Pi-specific layer on top of the generic setup guide.
Parts
Prices change; check live listings. Parts with their reason:
| Part | Spec | Why |
|---|---|---|
| Raspberry Pi 5 | 8 GB | Headroom for the OS, the UTXO cache and later an Electrum server |
| M.2 HAT+ (or Compact) | PCIe 2.0 x1, NVMe 2230/2242 | Real disk for sync. The M.2 HAT+ takes 2230 or 2242 drives; the Compact takes 2230 only |
| NVMe SSD | 2230 or 2242. 256 GB pruned, 2 TB for a full node | Sizes: pruned vs full. A 1 TB drive fills up within a couple of years |
| Power supply | Official 27 W USB-C | Undervoltage throttles the CPU and the drive |
| Cooler or case | Active cooler | Verification is sustained load |
| Ethernet cable | Wired | Wi-Fi adds one more thing that can stall |
The HAT is limited to PCIe 2.0 speeds (about 500 MB/s peak). Gen 3 can be enabled but Raspberry Pi says the Pi 5 is not certified for it and it may be unstable; the Gen 2 speed is plenty for a node. Source: Raspberry Pi M.2 HAT+ docs.
Which SSD fits. Most NVMe drives are 2280 and will not fit the HAT+. Raspberry Pi sells its own 2230 SSD in 256 GB, 512 GB and 1 TB, which is enough for a pruned node. For a 2 TB full node use a board that takes 2280 drives, such as the Pimoroni NVMe Base (2230 to 2280), with a drive from the hardware page.
Boot from NVMe
- Write Raspberry Pi OS (64-bit) to the NVMe drive with Raspberry Pi Imager. You can do this from another computer with a USB adapter, or on the Pi itself while it runs from an SD card.
- If the Pi currently boots from SD, run
sudo raspi-config, then Advanced Options, Boot Order, NVMe/USB boot. - Remove the SD card and reboot. With no SD card inserted the Pi 5 boots from NVMe; with one inserted it tries the SD card first.
$ lsblk -o NAME,SIZE,MOUNTPOINT | grep -E 'nvme|/$'
nvme0n1 931.5G
├─nvme0n1p1 512M /boot/firmware
└─nvme0n1p2 931.0G /
$ uname -m
aarch64Old bootloader firmware may not support NVMe boot; sudo apt update && sudo apt full-upgrade first. If the root filesystem is on mmcblk0, you are still on the SD card.
It is slow and fragile, and heavy writes are a classic way to corrupt the datadir. Boot from NVMe and keep the datadir there.
Install Core (aarch64)
Download the aarch64-linux-gnu tarball from bitcoincore.org, not x86_64, and verify its signatures; setup has the steps. "Exec format error" means the wrong architecture.
Config for a Pi
Start pruned unless you attached a large drive and know you need full history. Keep RPC local.
rpccookieperms=group
prune=550This is the same layout as setup: config in /etc/bitcoin, data in /var/lib/bitcoind. dbcache needs no line: Core 31.0 and later default to 1024 MiB on 64-bit machines with 4 GiB or more RAM, which suits the 8 GB Pi. Tor is optional; see Tor and privacy.
Sync and checks
Expect a few days; the disk and the cache decide. If blocks stops growing, use sync stuck before reinstalling.
$ vcgencmd get_throttled
throttled=0x0
$ vcgencmd measure_temp
temp=61.2'Cthrottled=0x0 means no undervoltage or thermal throttling has been recorded since boot. Anything else means a weak power supply or poor cooling.
Networking
Use Ethernet during the first sync. Forward 8333 only if you want inbound peers, and note the router change so you can undo it. RPC rules are in security basics.
When to pick something else
- You want the fastest sync per dollar, or an Electrum server on the same box: a used or new mini PC with 16 GB or more.
- You keep hitting throttling on a marginal power supply.
Compare the options on hardware. Once running, the Pi needs the weekly checklist and little else. Keep other self-hosted apps off the chain's NVMe, and if you outgrow the board, move the datadir to a mini PC.
FAQ
Can a Raspberry Pi 5 run a Bitcoin node?
Yes. Use 64-bit Raspberry Pi OS or Ubuntu, boot and store the chain on NVMe, install the aarch64 build of Core, and start pruned unless you attached a large drive.
Why NVMe and not microSD?
Sync is limited by disk speed. SD cards are slow for the many small reads and writes, and they wear out. NVMe through the M.2 HAT+ removes that bottleneck.
Is a Pi better than an Intel N100 mini PC?
The Pi wins on idle power and silence. A mini PC runs standard x86 builds and has more headroom for an Electrum server. Compare them on the hardware page.