Run a node
A ZP node keeps its own copy of the chain, checks every block and shares it with other nodes. It runs in Docker on Linux, macOS or Windows; a snapshot skips most of the initial sync.
What you need
A small cloud server is enough, for example 2 vCPU, 2–4 GB RAM, 40 GB disk on Ubuntu 22.04 or 24.04. Most cloud providers forbid mining; mine only on your own hardware.
Install
Choose your system:
One command (Ubuntu, Debian and most distributions)
curl -fsSL https://raw.githubusercontent.com/alonp1/zenprotocol/node-upgrade-script/scripts/install-node.sh | bash
Installs Docker if it is missing, then does steps 1–5 below. Run it again later to update; the chain data is kept. Options go in front of bash, for example MINER_THREADS=2 bash to mine on your own hardware.
Or step by step
git clone -b node-upgrade-script https://github.com/alonp1/zenprotocol.git cd zenprotocol docker compose pull docker compose run --rm --no-deps --entrypoint /load-snapshot.sh zen-node docker compose up -d
Needs Git and Docker with the compose plugin (curl -fsSL https://get.docker.com | sudo sh).
Before you start
Install Docker Desktop, open it and wait until it shows Engine running. Git comes with the Xcode command line tools (xcode-select --install).
One command, in Terminal
curl -fsSL https://raw.githubusercontent.com/alonp1/zenprotocol/node-upgrade-script/scripts/install-node.sh | bash
Or step by step
git clone -b node-upgrade-script https://github.com/alonp1/zenprotocol.git cd zenprotocol docker compose pull docker compose run --rm --no-deps --entrypoint /load-snapshot.sh zen-node docker compose up -d
The node image is built for Intel (x86-64). On Apple Silicon Docker Desktop runs it through emulation: it works, but the first sync and mining are slower.
Before you start
In PowerShell run winget install Git.Git Docker.DockerDesktop and restart the computer. Open Docker Desktop, accept the WSL install if asked, and wait for Engine running. Use Docker only: the native Windows node cannot create wallets.
In PowerShell
git clone -b node-upgrade-script https://github.com/alonp1/zenprotocol.git cd zenprotocol Set-Content .env "ZEN_DATA=zen-data" docker compose pull docker compose run --rm --no-deps --entrypoint /load-snapshot.sh zen-node docker compose up -d
ZEN_DATA=zen-data keeps the chain in a Docker volume; in a Windows folder the database is about 4 times slower. Run the snapshot step from one window only: two downloads at once corrupt the file. To check the node use curl.exe, not curl.
What these commands do
- Fetch the setup.
git clonedownloads this community repository: the Docker settings and helper scripts, not the chain. - Get the node image.
docker compose pulldownloads a ready image (several hundred MB). It holds the official Zen Protocol node release 1.0.13, unchanged, on the Mono 6.12 runtime, with this site added as a seed so the node finds peers. If the download fails,docker compose buildbuilds the same image on your machine from the official release files (a few minutes). - Load a snapshot. The
load-snapshot.shstep downloads the newest chain snapshot (about 5 GB), checks its SHA-256, test-extracts it and puts it in the data folder. Snapshots hold chain data only, never a wallet. Without it the node syncs from block 0, which takes days. - Start the node.
docker compose up -druns it in the background and restarts it after a reboot. It is capped at 1 CPU and 2 GB RAM, keeps its data in./zen-data, opens port 9655 for peers, and keeps its API (port 11567) on this computer only, because the API controls the node's wallet. - Check the sync.
curl -s http://127.0.0.1:11567/blockchain/info. The node is synced whenblocksequalsheaders.
Mining, wallets and every setting: full setup guide on GitHub. Seed address of this site: this-site:9655