I was interested in using a Raspberry Pi Zero W to run the claimed "Bare Minimum (With Custom Settings)" install of bitcoind
on either Gentoo or Linux From Scratch. It was suggested that it is POSSIBLE to get bitcoind
up and running and synced on a 256 MiB memory footprint (RAM not DISK). I'd be thrilled to get it running on 450 MiB of memory (RAM not DISK). Last I tried this (5+ years ago on Debian) it continually got killed by some kernel monitor... maybe the OOM daemon or something of the like. I eventually gave up and deemed it impossible to run in a 512 MiB memory footprint (RAM not DISK).
Many (many) years later I see that the "Bare Minimum" config claims bitcoind
can run in a 256 MiB memory footprint (RAM not DISK). Anyone have the magic CCFLAGS
, Kernel config.gz, make defines, or bitcoin.conf
switches to get core running with such a low footprint.
I guess I assumed that at a minimum, the full UTXO set (7 GiB) needed to remain in memory on any synced full node. Or, are these bare minimum configs referenced really SPV (thin) clients or something? I'd prefer to avoid pruning if possible.
Obviously, I have no rational reason for wanting to do this on such an insanely anemic system other than the simple puzzle of the problem to solve.
Just to get over the obvious hurdles... I intend to perform the full IBD on a robust (64GiB Mem / 12 Core / 5 TB SSD) system, then only hand control over to the Pi once fully synced. I will also run the Pi off of SSD with whatever infinite swap config gets me across the finish line. Killing the SSD via insane IO is fine by me. It's just a proof of concept, though in truth, I am looking for the most optimal bare-minimum config.
To save the search query, my PiZeroW has the following specs:
- Proc: BCM2835 single-core 32 bit ARMv6 ("comparable" to 2005 Pentium D 805)
- Mem: 512 MiB
- NIC: 802.11 b/g/n wireless LAN (450 Mbps)
- DISK: 5 TiB USB SSD