Logo
  • Staking
  • Services
  • Governance Record
  • Rewards Calculator
  • Investments
  • Guides
  • Blogs
  • About Us
  • Contact Us

Aleo Node Setup With Monitoring

  • Aleo Node Setup With Monitoring
  • Recommended Hardware for validator
  • Port required
  • Prerequisites
  • System Depedencies
  • Go
  • Install Rust
  • Build the binaries
  • Create an Account
  • Setup Variables
  • Create Service
  • Monitoring
  • Grafana
  • More Blog Posts
  • Subscribe to newsletter
image

Aleo Node Setup With Monitoring

This guide will help you setup your node, whether you want to run it as prover, client or validator.

💡
This guide is based on open source information available and no private testnet information is being shared

Recommended Hardware for validator

CPU
32 cores
Memory
128GB
Disk
2TB NVMe
Network
10 G
OS
Ubuntu 22.04 LTS

Port required

Port
Protocol
Purpose
Notes
5000
TCP
Validator communications
Required
4133
TCP
SnarkOS peers
Required
3033
TCP
SnarkOS REST API
Optional. Open to allow external access to the REST API, if enabled.
9000
TCP
Metrics

Prerequisites

System Depedencies

sudo apt update 
sudo apt dist-upgrade -y
sudo apt install \
    build-essential \
    curl \
    clang \
    gcc \
    libssl-dev \
    llvm \
    make \
    pkg-config \
    tmux \
    xz-utils

Go

cd $HOME
GO_VERSION=$(curl -s https://go.dev/dl/?mode=json | jq -r '.[0].version')
echo $GO_VERSION

Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source ${HOME}/.cargo/env
cargo --version
rustc --version

Build the binaries

git clone https://github.com/AleoHQ/snarkOS.git
cd $HOME/snarkOS
cargo build --release
cp $HOME/snarkOS/target/release/snarkos /usr/bin/

Create an Account

snarkos account new

Setup Variables

MODE=client # validator, prover
BINARY_NAME=snarkos

Create Service

Monitoring

There is a really good exporter written by DSRV labs to monitor a Aleo node:

aleo_exporter

dsrvlabs ⋅ a year ago

git clone https://github.com/dsrvlabs/aleo_exporter.git
cd aleo_exporter
go mod tidy
go build ./cmd/aleo_exporter
sudo mv aleo_exporter /usr/bin/

Grafana

Now you can plot charts and monitor your node

image

More Blog Posts

The Rise Of Intent-Centric BlockchainsThe Rise Of Intent-Centric Blockchains
The Rise Of Intent-Centric Blockchains
InformativeNew Network
Who Builds the Stablecoin Rails?Who Builds the Stablecoin Rails?
Who Builds the Stablecoin Rails?
New NetworkInformative
The Rise of Move: Rebuilding Blockchain LogicThe Rise of Move: Rebuilding Blockchain Logic
The Rise of Move: Rebuilding Blockchain Logic
Informative
MegaETH: Web3 at Web2 SpeedMegaETH: Web3 at Web2 Speed
MegaETH: Web3 at Web2 Speed
Informative
Aztec: The Private World Computer Built on EthereumAztec: The Private World Computer Built on Ethereum
Aztec: The Private World Computer Built on Ethereum
Informative
Monad: Speed Without SacrificeMonad: Speed Without Sacrifice
Monad: Speed Without Sacrifice
Informative
Canton Network: Where Privacy Meets Tokenization to Redefine Institutional FinanceCanton Network: Where Privacy Meets Tokenization to Redefine Institutional Finance
Canton Network: Where Privacy Meets Tokenization to Redefine Institutional Finance
Informative
NEAR Protocol 2025 Outlook: What’s Ahead?NEAR Protocol 2025 Outlook: What’s Ahead?
NEAR Protocol 2025 Outlook: What’s Ahead?
Informative
GenLayer: The Court of the Internet for the AI AgeGenLayer: The Court of the Internet for the AI Age
GenLayer: The Court of the Internet for the AI Age
Informative
Somnia Network: The Future of On-Chain EverythingSomnia Network: The Future of On-Chain Everything
Somnia Network: The Future of On-Chain Everything
Informative
Solana in 2025: Transforming Into A BehemothSolana in 2025: Transforming Into A Behemoth
Solana in 2025: Transforming Into A Behemoth
InformativeAnalysis
What is IBRL and Why Does It Matter?What is IBRL and Why Does It Matter?
What is IBRL and Why Does It Matter?
AnalysisInformative
Monad: L1 Scaling Fixed Forever?Monad: L1 Scaling Fixed Forever?
Monad: L1 Scaling Fixed Forever?
TestnetInformative
FogoChain: I Feel the Need, The Need for SpeedFogoChain: I Feel the Need, The Need for Speed
FogoChain: I Feel the Need, The Need for Speed
Informative
Zilliqa 2.0 Launch - What major changes we can expect?Zilliqa 2.0 Launch - What major changes we can expect?
Zilliqa 2.0 Launch - What major changes we can expect?
TestnetInformative
XMTP: The Future of Messaging?XMTP: The Future of Messaging?
XMTP: The Future of Messaging?
TestnetInformative
IOTA Rebased: Unlocking New PossibilitiesIOTA Rebased: Unlocking New Possibilities
IOTA Rebased: Unlocking New Possibilities
Informative
Symbiotic Finance Deep Dive: The Backbone of a New Secure and Scalable DeFi EcosystemSymbiotic Finance Deep Dive: The Backbone of a New Secure and Scalable DeFi Ecosystem
Symbiotic Finance Deep Dive: The Backbone of a New Secure and Scalable DeFi Ecosystem
Analysis
Story Protocol: Streamlining IP Rights for Creators.Story Protocol: Streamlining IP Rights for Creators.
Story Protocol: Streamlining IP Rights for Creators.
Informative
Unlocking Liquidity: How Berachain's Proof-of-Liquidity is Changing Blockchain EconomicsUnlocking Liquidity: How Berachain's Proof-of-Liquidity is Changing Blockchain Economics
Unlocking Liquidity: How Berachain's Proof-of-Liquidity is Changing Blockchain Economics
Informative
Aleo Node Setup With MonitoringAleo Node Setup With Monitoring
Aleo Node Setup With Monitoring
Informative
How to Stake Celestia TIA ?How to Stake Celestia TIA ?
How to Stake Celestia TIA ?
Guide
How Aleo executes Decentralized Private ComputationHow Aleo executes
How Aleo executes Decentralized Private Computation
Informative
Delegating zk-SNARKs Proofs with Privacy for PerformanceDelegating zk-SNARKs Proofs with Privacy for Performance
Delegating zk-SNARKs Proofs with Privacy for Performance
Informative
How decentralized is Aptos Really ?How decentralized is Aptos Really ?
How decentralized is Aptos Really ?
Analysis
Aleo Record ModelAleo Record Model
Aleo Record Model
Informative
What are Zk Snarks ?What are Zk Snarks ?
What are Zk Snarks ?
Informative
Governance Bot ImprovementsGovernance Bot Improvements
Governance Bot Improvements
InformativeServices
ZEXE: How Aleo Achives private computation ?ZEXE: How Aleo Achives private computation ?
ZEXE: How Aleo Achives private computation ?
Informative
Celestia Testnet Log AnalysisCelestia Testnet Log Analysis
Celestia Testnet Log Analysis
TestnetAnalysis
How to Stake Agoric BLD ?How to Stake Agoric BLD ?
How to Stake Agoric BLD ?
Guide
📌
View More Blog Posts

Subscribe to newsletter

📌
Logo

Privacy Policy

Terms of Use

Brand Kit

© 2025 Encapsulate. All rights reserved.

DiscordXGitHubLinkedIn
# First remove any existing old Go installation
sudo rm -rf /usr/local/go

# Install correct Go version
curl https://dl.google.com/go/${GO_VERSION}.linux-amd64.tar.gz | sudo tar -C/usr/local -zxvf -

# Update environment variables to include go
cat <<'EOF' >>$HOME/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF

source $HOME/.profile

echo "-------------------------------------------------------------"
go version
echo "-------------------------------------------------------------"


# go version go1.20.2 linux/amd64
sudo tee <<EOF >/dev/null /etc/systemd/system/$BINARY_NAME.service
[Unit]
Description=$BINARY_NAME Aleo daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which $BINARY_NAME) start --nodisplay --metrics --logfile /dev/null --verbosity 4 --$MODE
Restart=always
RestartSec=3
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF


cat /etc/systemd/system/$BINARY_NAME.service

sudo systemctl enable $BINARY_NAME
sudo systemctl daemon-reload
sudo systemctl restart $BINARY_NAME

journalctl -u $BINARY_NAME.service -n 100 -f -o cat
BINARY_NAME=aleo_exporter
NODE=http://aleo-testnet-validator.kingsuper.services:3033

sudo tee <<EOF >/dev/null /etc/systemd/system/$BINARY_NAME.service
[Unit]
Description=$BINARY_NAME Aleo daemon
After=network-online.target

[Service]
User=$USER
ExecStart=$(which $BINARY_NAME) -rpcURI=$NODE
Restart=always
RestartSec=3
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF


cat /etc/systemd/system/$BINARY_NAME.service

sudo systemctl enable $BINARY_NAME
sudo systemctl daemon-reload
sudo systemctl restart $BINARY_NAME

journalctl -u $BINARY_NAME.service -n 100 -f -o cat