A zero-knowledge virtual machine that generates proofs of correct execution for programs written in Rust or other LLVM-compiled languages.
aleo-labs-protocol/snarkOS
A decentralized operating system and node software that runs the Aleo network for zero-knowledge applications.
- Stars
- 4,530
- Forks
- 2,697
- Open issues
- 131
- Last commit
- 23 hours ago
What is it?
snarkOS is the node implementation behind the Aleo network, a blockchain for zero-knowledge applications. It verifies transactions and stores encrypted application state in a publicly verifiable way. The software runs in three node roles: validators that take part in AleoBFT consensus, clients that keep a copy of the ledger and relay transactions and solutions, and provers that solve the Aleo puzzle without maintaining the ledger.
The project is written in Rust and installed from source with cargo. It provides a snarkos CLI for starting nodes, creating and signing with Aleo accounts, and a REST server on port 3030 for clients. Validators can expose telemetry and Prometheus metrics, and a local devnet can be launched with a script for testing multiple nodes on one machine.
Node operators need substantial hardware: validators are specified with 64 or more cores, 256 GiB of RAM and several terabytes of NVMe storage. The repository also includes local backup tooling based on RocksDB checkpoints and documentation for migrating older storage formats.
Key features
- 01Runs validator, client and prover node roles for the Aleo network.
- 02Provides the snarkos CLI for starting nodes and managing Aleo accounts.
- 03Exposes a REST server for clients and validator telemetry endpoints.
- 04Includes a local devnet script for running multiple nodes on one machine.
- 05Offers RocksDB-based local backups that use hard links to save space.
Use cases
- Operating a validator or client node on the Aleo network.
- Contributing proving capacity as a prover node.
- Testing multi-node Aleo behavior on a local devnet.
- Studying the consensus and networking code of a zero-knowledge blockchain.
Quick start
- 1
Install Rust (see the Rust installation link in the README)
- 2
Clone the mainnet branch of the repository
git clone --branch mainnet --single-branch https://github.com/ProvableHQ/snarkOS.git - 3
Install snarkOS from the cloned directory
cargo install --locked --path . - 4
Start a client node (run from any directory after install)
snarkos start --client --nodisplay --node 0.0.0.0:4130 --peers "core_client_ip_1:4130,core_client_ip_2:4130,core_client_ip3:4130,outer_client_ip_1:4130,..." --verbosity 1 --rest 0.0.0.0:3030
Things to know
- Ubuntu, macOS and Windows are the only supported client platforms, and validators require Ubuntu 22.04.
- Running a node needs very large hardware, such as 128GiB+ RAM and multi-terabyte storage for clients.
- The CUDA prover feature is experimental and may have breaking changes.
Topics
FAQ
- What is snarkOS?
- A decentralized operating system and node software that runs the Aleo network for zero-knowledge applications. snarkOS is the node implementation behind the Aleo network, a blockchain for zero-knowledge applications. It verifies transactions and stores encrypted application state in a publicly verifiable way. The software runs in three node roles: validators that take part in AleoBFT consensus, clients that keep a copy of the ledger and relay transactions and solutions, and provers that solve the Aleo puzzle without maintaining the ledger.
- Is snarkOS free to use? What license does it have?
- snarkOS is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
- Is snarkOS still maintained?
- Actively maintained. The last commit to snarkOS was on Nov 6, 2026.
- What can I use snarkOS for?
- Operating a validator or client node on the Aleo network. Contributing proving capacity as a prover node. Testing multi-node Aleo behavior on a local devnet. Studying the consensus and networking code of a zero-knowledge blockchain.
- How do I install snarkOS?
- Install Rust (see the Rust installation link in the README) Clone the mainnet branch of the repository: git clone --branch mainnet --single-branch https://github.com/ProvableHQ/snarkOS.git Install snarkOS from the cloned directory: cargo install --locked --path . Start a client node (run from any directory after install): snarkos start --client --nodisplay --node 0.0.0.0:4130 --peers "core_client_ip_1:4130,core_client_ip_2:4130,core_client_ip3:4130,outer_client_ip_1:4130,..." --verbosity 1 --rest 0.0.0.0:3030
- Where can I get snarkOS?
- The source code and installation instructions are on GitHub: https://github.com/aleo-labs-protocol/snarkOS
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Rust implementation of the Nimiq Proof-of-Stake blockchain node, based on the Albatross consensus algorithm.
TypeScript framework for writing zero-knowledge circuits and zkApps, with proving and verifying in browsers, Node, or for the Mina Protocol.
A Rust implementation of Circle STARK proving and verification over the M31 field, with a no_std verifier and SIMD prover backend.
JavaScript and WebAssembly library for generating and verifying zkSNARK proofs with Groth16, PLONK and FFLONK, used with circom circuits.
A privacy-preserving on-chain voting app on Cardano where voters prove membership with zero-knowledge proofs and votes stay anonymous.