Aleo is a privacy-focused blockchain that leverages zero-knowledge proofs (ZKPs) to enable private smart contracts. Running a node allows you to participate in testnets, mining (Prover), and transaction validation. Below is an up-to-date guide for setting up an Aleo node on Ubuntu 20.04/22.04.
To run an Aleo node efficiently, you’ll need a dedicated server (VPS/Bare Metal) with:
Minimum:
CPU: 16 cores
RAM: 16 GB
SSD: 128 GB
OS: Ubuntu 20.04/22.04
Recommended:
CPU: 32 cores
RAM: 32 GB
Network: 10+ Mbps bandwidth
Note: Some cloud providers (e.g., WebTropia) may block Aleo nodes—prefer dedicated servers (Hetzner, AWS, Oracle Cloud).
sudo apt update && sudo apt upgrade -y
sudo apt install wget jq git build-essential pkg-config libssl-dev -y
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source ~/.cargo/env
rustc --version # Verify installation
If an older Rust version is installed, remove it first:
rustup self uninstall
git clone https://github.com/AleoHQ/snarkOS.git --depth 1
cd snarkOS
For Ubuntu, use the helper script:
./build_ubuntu.sh
cargo install --path .
Note: Compilation may take 20–60 minutes depending on server specs.
Create a new Aleo account and save the private key securely:
snarkos account new > $HOME/aleo_account.txt
cat $HOME/aleo_account.txt
Important: Save these details safely:
Private Key
– Required to run the node.
View Key
– Used to check transactions.
Address
– Used to receive rewards.
./run-client.sh
./run-prover.sh
When prompted, enter your private key from aleo_account.txt
.
Check Logs:
journalctl -u aleo-prover -f -o cat # Prover logs
journalctl -u aleo-client -f -o cat # Client logs
Manage Services:
sudo systemctl restart aleo-prover # Restart Prover
sudo systemctl stop aleo-client # Stop Client
Uninstall Node:
sudo systemctl stop aleo-prover
rm -rf ~/snarkOS /usr/bin/snarkos
Create a systemd
service for the Prover:
sudo tee /etc/systemd/system/aleo-prover.service > /dev/null <<EOF
[Unit]
Description=Aleo Prover
After=network-online.target
[Service]
User=$USER
ExecStart=$(which snarkos) start --nodisplay --prover $(grep "Private Key" $HOME/aleo_account.txt | awk '{print $3}')
Restart=on-failure
RestartSec=10
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
Enable & start the service:
sudo systemctl daemon-reload
sudo systemctl enable aleo-prover
sudo systemctl start aleo-prover
Allow incoming connections:
sudo ufw allow 4133/tcp # P2P port
sudo ufw allow 3033/tcp # RPC port
Check if the node is synced:
curl -s http://localhost:3033/testnet3/latest/height
If it returns a block number, your node is running correctly.
Tips:
Monitor logs with journalctl
.
Use a separate wallet for testnets.
Update the node regularly (git pull
in snarkOS
).
For support, join the official Aleo Discord. 🚀
Links:
Website ~ https://www.aleo.org/
Twitter ~ https://twitter.com/AleoHQ
Community Twitter ~ https://twitter.com/aleocommunity
GitHub ~ https://github.com/AleoHQ
Community Forum — https://community.aleo.org/
Community Calendar ~ https://www.aleo.org/community/calendar
YouTube — https://www.youtube.com/channel/UCS_HKT2heOC_q88YQLiJt0g
Developer Documentation ~ https://developer.aleo.org/
Leo Playground ~ https://play.leo-lang.org/
Aleo Block Explorer ~ https://www.aleo.network/
Community Blog ~ https://medium.com/@AleoHQ
Announcements Blog ~ https://www.aleo.org/blog