Requirements
System
What it runs on
- Operating system
- Linux, x86-64 or ARM64
- C library
- glibc 2.31 or newer
- x86-64 CPU
- Intel Broadwell or AMD Zen 1, or newer
- Clock
- Kept in sync by NTP
- Other software
- None at run time: the devnet circuits and the dashboard are inside mina. Installing needs the tools below
- Disk
- 5 GB free
The CPU and glibc checks below are for the Linux archives. On macOS or Windows, run the node in Docker instead, as its macOS and Windows section explains. The image brings its own C library, so the glibc check does not apply there.
mina uses two sets of x86-64 instructions, BMI2 and ADX. On an older CPU that lacks either, it stops with an illegal instruction error. This prints both names on a CPU that has them:
grep -o -w -E 'bmi2|adx' /proc/cpuinfo | sort -uCheck your glibc version on the first line of this output:
ldd --versionMemory
Memory it uses
- Devnet full node, x86_64
- About 360 to 380 MiB over 9 hours; peak 644 MiB
- Mainnet full node, x86_64
- About 1.2 GiB over 9 hours; peak 2.6 GiB
- Devnet block producer
- About 1.3 GiB over 9 hours; peak 2.7 GiB, including the block prover
- Devnet node with SNARK worker
- About 2.0 to 2.2 GiB over 9 hours; peak 2.6 GiB
- Raspberry Pi 4, 4 GB, ARM64
- Devnet full node, two 3-hour runs: steady mean 341 and 344 MiB, steady p95 364 and 368 MiB; peak 570 and 652 MiB while catching up
- Apple M4, Docker, ARM64
- Devnet full node over 10 minutes synced: median 322 MiB, peak 370 MiB. Block producer: 1.14 to 1.20 GiB. SNARK worker: 1.05 GiB, 1.80 GiB once it loads the zkApp provers
Suggested machine
- Full node
- 1 core and 2 GiB RAM to try; 2 cores and 4 GiB suggested
- SNARK worker
- 4 cores and 8 GiB RAM to try; 8 cores and 16 GiB suggested
- Block producer
- 4 cores and 8 GiB RAM to try; 8 cores and 16 GiB suggested
The x86_64 rows are 0.20.0 nodes on 27 and 28 October 2026: the range of RSS over 9 hours of running, and the peak, the process's high-water mark since it started, which includes restoring its saved chain. The ARM64 rows are shorter runs. The Pi 4 rows give each run's mean and 95th percentile of RSS sampled every 30 seconds, from 30 minutes after sync to the end of the run. The Apple M4 rows are docker stats samples taken every 10 seconds, the producer and worker ones as the range seen. A block producer must also prove each block within its 90-second slot, so a faster CPU gives it more margin.
Mina uses the jemalloc allocator on x86-64 and ARM64. To override its options, set _RJEM_MALLOC_CONF before starting Mina. For example:
export _RJEM_MALLOC_CONF='narenas:8'Disk
A synced devnet node's data measured 237 MB: 132 MB of saved chain state, 70 MB of ledger accounts and 29 MB of proof cache. Logs take up to 200 MiB more. 5 GB free leaves room for growth and upgrades.
Tools to install it
Downloading and checking a release archive needs:
curlandtar;sha256sum, from GNU coreutils;- OpenSSH 8.2 or newer, for
ssh-keygen -Y verify.
Docker needs a working Docker Engine or Docker Desktop that your user can run. Its Compose section also needs the Compose plugin (docker compose) and curl.