# Running an Aleo node with snarkOS: a developer’s guide

By [Colliseum](https://paragraph.com/@colliseum) · 2025-06-20

---

_My name is Heorhii, and in this guide, I’ll walk you through how to run and understand Aleo’s snarkOS, the decentralized operating system powering ZK apps._ Whether you're building applications, participating in consensus, or simply exploring Aleo’s infrastructure, snarkOS is the backbone of the network.

Let’s dive in.

**What is snarkOS?** snarkOS is the foundation of the Aleo blockchain. It verifies off-chain, zero-knowledge transactions using `snarkVM` and maintains encrypted state in a publicly verifiable way. snarkOS enables Aleo to support private apps with a trustless execution environment.

You can run snarkOS in three distinct modes, depending on your role in the network: client, prover, or validator.

**Node roles in snarkOS:**

**1\. Client.** A client node connects to the network and performs essential tasks like retrieving blockchain data and submitting transactions. It doesn't participate in block production or consensus.

**Key responsibilities:**

*   Fetch and serve blocks, transactions, and program state
    
*   Submit new transactions to the network
    
*   Stay in sync with other nodes
    
*   Expose API access to developers and applications
    

**System requirements:**

*   OS: Ubuntu 22.04 (LTS), macOS Sonoma, or Windows 11
    
*   CPU: 32 cores
    
*   RAM: 32 GB
    
*   Storage: 300 GB PCIe Gen 3 x4 NVMe SSD or better
    
*   Network: 100 Mbps upload and download
    

**How to run a client:**

    git clone https://github.com/AleoHQ/snarkOS.git
    cd snarkOS
    ./run-client.sh
    

Or run it directly:

    snarkos start --client
    

_More info you can find here:_

[https://github.com/ProvableHQ/snarkOS#2-build-guide](https://github.com/ProvableHQ/snarkOS#2-build-guide)

**2\. Prover.** Provers solve the `CoinbasePuzzle` to generate valid `ProverSolutions` that earn rewards. They do not participate in consensus but help secure the network by contributing computational power.

**Reward model:**

*   Provers earn a `CoinbaseReward` when their solution is included in a block
    
*   Rewards are proportional to computational contribution, not winner-takes-all
    
*   The `CoinbaseReward` decreases 10% annually over 10 years
    

**How to run a prover:**

Start by following the instructions in the [Build Guide](https://github.com/ProvableHQ/snarkOS?tab=readme-ov-file#2-build-guide). Run:

    snarkos start --prover
    

No staking or permission is required to become a prover.

**3\. Validator.** Validators are consensus participants. They run AleoBFT and are responsible for generating blocks and finalizing transactions. To become a validator, you must stake at least **10 million AleoCredits**.

**Key functions:**

*   Participate in the AleoBFT consensus
    
*   Approve batches of transactions
    
*   Generate finalized blocks
    
*   Maintain synchronization with other validators
    

**Start an Aleo validator node:**

Follow the official build guide to install snarkOS, then run:

    snarkos start --validator --nodisplay \
      --bft 0.0.0.0:5000 \
      --node 0.0.0.0:4130 \
      --peers "validator_ip_1:4130,validator_ip_2:4130,core_client_ip_1:4130,core_client_ip_2:4130" \
      --validators "validator_ip_1:5000,validator_ip_2:5000" \
      --verbosity 1 \
      --norest \
      --private-key-file ~/snarkOS/privatekey
    

Alternatively, run:

    ./run-validator.sh
    

You can also define the private key inline instead of using a file by adding the `--private-key` flag.

**Enabling validator telemetry (optional).** Telemetry allows you to monitor validator participation in the consensus process. This feature is optional but useful for tracking node performance.

**Enable telemetry via installation:**

    cargo install --locked --path . --features telemetry
    

Or via the validator script:

    ./run-validator.sh
    

You’ll be prompted:

    Do you want to enable validator telemetry? (y/n, default: y)
    

**Telemetry endpoints:**

*   `GET /{network}/validators/participation`
    
*   `GET /{network}/validators/participation?metadata=true`
    

**JWT Authentication**

snarkOS supports JWT-based authentication for protected endpoints. You can provide the following runtime parameters:

*   `--jwt-secret`: Base64-encoded JWT secret for signing and validation
    
*   `--jwt-timestamp`: UNIX timestamp used to validate the token
    

**Protected endpoints:**

*   `/node/address`
    
*   `/program/{id}/mapping/{name}`
    
*   `/db_backup`
    

_More info you can find here:_

[https://developer.aleo.org/concepts/network/snarkos](https://developer.aleo.org/concepts/network/snarkos)

**Launch your Aleo node with a single click.** Running a node on Aleo helps secure the network and gives you control over your own data. But until now, deploying a node could be technical and time-consuming.

![https://console.cloud.google.com/marketplace/product/bcw-marketplace-public/snarkos-rpc?pli=1&inv=1&invt=Ab0m5g&project=galvanic-style-270107](https://storage.googleapis.com/papyrus_images/2a463a5192af7620ee0eeb225eface1fd53165ffa47d2ef87ddc66b0e47ea5d2.png)

https://console.cloud.google.com/marketplace/product/bcw-marketplace-public/snarkos-rpc?pli=1&inv=1&invt=Ab0m5g&project=galvanic-style-270107

Thanks to **Provable** and **BCW**, you can now spin up a full Aleo node on Google Cloud in just one click.

[https://console.cloud.google.com/marketplace/product/bcw-marketplace-public/snarkos-rpc?pli=1&inv=1&invt=Ab0m5g&project=galvanic-style-270107](https://console.cloud.google.com/marketplace/product/bcw-marketplace-public/snarkos-rpc?pli=1&inv=1&invt=Ab0m5g&project=galvanic-style-270107)

With the **One-Click Aleo Node** from the Google Cloud Marketplace, you can:

*   **Start up quickly**. Deploy a `snarkOS` client node on Canary, Testnet, or Mainnet with REST API enabled
    
*   **Customize**. Choose VM specs to suit your needs
    
*   **Skip manual setup**. No compiling, no config files
    
*   **Tailor runtime logs**. Set verbosity level for your logs
    
*   **Free to use**. You only pay for the VM you run
    

A bootstrap service will automatically fetch a recent Aleo blockchain snapshot, speeding up the initial sync. You can monitor progress using:

    sudo systemctl status snarkos-firstboot.service
    sudo systemctl status snarkos.service
    

This is the fastest way to join the network and start experimenting or building services.

_More about this here:_

[https://aleo.org/post/one-click-aleo-node/](https://aleo.org/post/one-click-aleo-node/)

**Final thoughts.** No matter which role you choose – Client, Prover, or Validator – running a node helps strengthen the Aleo network.

If you're a builder like me, snarkOS is your gateway into the zk-powered future. Let me know if you want help getting your node up and running!

[Subscribe](null)

_To know more about Aleo, join now!_

> *   _Aleo_ [_Twitter_](https://twitter.com/aleohq)
>     
> *   _Aleo_ [_Discord_](https://discord.gg/aleo)
>     
> *   _Aleo_ [_Website_](https://www.aleo.org/)
>     
> *   _List of_ [_Aleo and Leo code and resourses_](https://github.com/howardwu/awesome-aleo#%EF%B8%8F-a-curated-list-of-aleo--leo-code-and-resources-%EF%B8%8F)
>     

Prepared by Colliseum

---

*Originally published on [Colliseum](https://paragraph.com/@colliseum/running-an-aleo-node-with-snarkos-a-developer-s-guide)*
