Step-by-Step Guide: How to Run an Aleo Node
March 31st, 2025

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.

1. Server Requirements

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).

2. Install Dependencies

2.1. Update System

sudo apt update && sudo apt upgrade -y
sudo apt install wget jq git build-essential pkg-config libssl-dev -y

2.2. Install Rust (v1.65+)

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

3. Install the Aleo Node

3.1. Clone the snarkOS Repository

git clone https://github.com/AleoHQ/snarkOS.git --depth 1
cd snarkOS

3.2. Build & Install

For Ubuntu, use the helper script:

./build_ubuntu.sh
cargo install --path .

Note: Compilation may take 20–60 minutes depending on server specs.

4. Run the Node

4.1. Generate a Wallet

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.

4.2. Start the Client

./run-client.sh

4.3. Start the Prover (Mining Mode)

./run-prover.sh

When prompted, enter your private key from aleo_account.txt.

5. Useful Commands

  • 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
    

6. Additional Configurations

6.1. Auto-Start via systemd

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

6.2. Open Firewall Ports

Allow incoming connections:

sudo ufw allow 4133/tcp  # P2P port
sudo ufw allow 3033/tcp  # RPC port

7. Verify Node Sync

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

Subscribe to Nataliiiiii
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.
More from Nataliiiiii

Skeleton

Skeleton

Skeleton