https://github.com/AleoHQ/snarkOS Skip to content Toggle navigation Sign up * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Case Studies + Customer Stories + Resources * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing [ ] * # In this repository All GitHub | Jump to | * No suggested jump to results * # In this repository All GitHub | Jump to | * # In this organization All GitHub | Jump to | * # In this repository All GitHub | Jump to | Sign in Sign up You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. {{ message }} AleoHQ / snarkOS Public * Notifications * Fork 1.8k * Star 2.6k A Decentralized Operating System for ZK Applications snarkos.org License Apache-2.0 license 2.6k stars 1.8k forks Star Notifications * Code * Issues 36 * Pull requests 19 * Actions * Projects 0 * Security * Insights More * Code * Issues * Pull requests * Actions * Projects * Security * Insights AleoHQ/snarkOS This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. testnet3 Switch branches/tags [ ] Branches Tags Could not load branches Nothing to show {{ refName }} default View all branches Could not load tags Nothing to show {{ refName }} default View all tags Name already in use A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch? Cancel Create 125 branches 26 tags Code * Local * Codespaces * Clone HTTPS GitHub CLI [https://github.com/A] Use Git or checkout with SVN using the web URL. [gh repo clone AleoHQ] Work fast with our official CLI. Learn more about the CLI. * Open with GitHub Desktop * Download ZIP Sign In Required Please sign in to use Codespaces. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching GitHub Desktop If nothing happens, download GitHub Desktop and try again. Launching Xcode If nothing happens, download Xcode and try again. Launching Visual Studio Code Your codespace will open once ready. There was a problem preparing your codespace, please try again. Latest commit @howardwu howardwu Merge pull request #2474 from AleoHQ/bump/snarkvm-v0.12.6 ... 796de94 Jun 27, 2023 Merge pull request #2474 from AleoHQ/bump/snarkvm-v0.12.6 Bump snarkVM to v0.12.6 796de94 Git stats * 7,401 commits Files Permalink Failed to load latest commit information. Type Name Latest commit message Commit time .circleci Update CI May 5, 2023 17:54 .github Modularizes the node into node types October 22, 2022 22:19 .integration chore(snarkos): bump version for new release June 22, 2023 14:32 .resources chore(snarkos): bump version for new release June 22, 2023 14:32 account chore(snarkos): bump version for new release June 22, 2023 14:32 cli Enable preserve_order for serde_json June 26, 2023 15:38 display chore(snarkos): bump version for new release June 22, 2023 14:32 node Enable preserve_order for serde_json June 26, 2023 15:38 snarkos deps: add a default jemalloc feature May 23, 2023 12:17 .gitignore Modularizes the node into node types October 22, 2022 22:19 .rustfmt.toml Clippy November 5, 2022 22:13 .rusty-hook.toml Clippy November 5, 2022 22:13 Cargo.lock Enable preserve_order for serde_json June 26, 2023 15:38 Cargo.toml Bump snarkVM to v0.12.6 June 26, 2023 15:32 LICENSE.md Update LICENSE.md May 22, 2023 11:20 README.md Merge branch 'testnet3' into testnet3 June 15, 2023 20:36 build.rs Fix typo in file headers May 22, 2023 11:28 build_ubuntu.sh Update build_ubuntu.sh December 4, 2022 02:29 run-client.sh Updates how the ledger/consensus is loaded (unifies genesis block logic) October 24, 2022 19:33 run-prover.sh Enforce user provides private key December 6, 2022 09:04 run-validator.sh Enforce user provides private key December 6, 2022 09:04 View code [ ] Table of Contents 1. Overview 2. Build Guide 2.1 Requirements 2.2 Installation 3. Run an Aleo Node 3a. Run an Aleo Client 3b. Run an Aleo Prover 4. FAQs 1. My node is unable to compile. 2. My node is unable to connect to peers on the network. 3. I can't generate a new address 5. Command Line Interface 6. Development 6.1 Quick Start 6.2 Operations Clean Up 7. License README.md snarkOS [6874747073] [6874747073] [6874747073] Table of Contents * 1. Overview * 2. Build Guide + 2.1 Requirements + 2.2 Installation * 3. Run an Aleo Node + 3a. Run an Aleo Client + 3b. Run an Aleo Prover * 4. FAQs * 5. Command Line Interface * 6. Development Guide + 6.1 Quick Start + 6.2 Operations * 7. License 1. Overview snarkOS is a decentralized operating system for zero-knowledge applications. This code forms the backbone of Aleo network, which verifies transactions and stores the encrypted state applications in a publicly-verifiable manner. 2. Build Guide 2.1 Requirements The following are minimum requirements to run an Aleo node: * OS: 64-bit architectures only, latest up-to-date for security + Clients: Ubuntu 20.04, macOS Ventura or later, Windows 11 or later + Provers: Ubuntu 20.04, macOS Ventura or later + Validators: Ubuntu 20.04, macOS Ventura or later * CPU: 64-bit architectures only + Clients: 16-cores + Provers: 32-cores (64-cores preferred) + Validators: 32-cores (64-cores preferred) * RAM: DDR4 or better + Clients: 16GB of memory + Provers: 32GB of memory (64GB or larger preferred) + Validators: 64GB of memory (128GB or larger preferred) * Storage: PCIe Gen 3 x4, PCIe Gen 4 x2 NVME SSD, or better + Clients: 64GB of disk space + Provers: 128GB of disk space + Validators: 2TB of disk space (4TB or larger preferred) * Network: Symmetric, commercial, always-on + Clients: 100Mbps of upload and download bandwidth + Provers: 250Mbps of upload and download bandwidth + Validators: 500Mbps of upload and download bandwidth * GPU: + Clients: Not required at this time + Provers: CUDA-enabled GPU (optional) + Validators: Not required at this time Please note to run an Aleo Prover that is competitive, the machine will require more than these requirements. 2.2 Installation Before beginning, please ensure your machine has Rust v1.66+ installed. Instructions to install Rust can be found here. Start by cloning this Github repository: git clone https://github.com/AleoHQ/snarkOS.git --depth 1 Next, move into the snarkOS directory: cd snarkOS [For Ubuntu users] A helper script to install dependencies is available. From the snarkOS directory, run: ./build_ubuntu.sh Lastly, install snarkOS: cargo install --path . Please ensure ports 4133/tcp and 3033/tcp are open on your router and OS firewall. 3. Run an Aleo Node 3a. Run an Aleo Client Start by following the instructions in the Build Guide. Next, to start a client node, from the snarkOS directory, run: ./run-client.sh 3b. Run an Aleo Prover Start by following the instructions in the Build Guide. Next, generate an Aleo account address: snarkos account new This will output a new Aleo account in the terminal. Please remember to save the account private key and view key. The following is an example output: Attention - Remember to store this account private key and view key. Private Key APrivateKey1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <-- Save Me And Use In The Next Step View Key AViewKey1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <-- Save Me Address aleo1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx <-- Save Me Next, to start a proving node, from the snarkOS directory, run: ./run-prover.sh When prompted, enter your Aleo private key: Enter the Aleo Prover account private key: APrivateKey1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 4. FAQs 1. My node is unable to compile. * Ensure your machine has Rust v1.66+ installed. Instructions to install Rust can be found here. * If large errors appear during compilation, try running cargo clean. * Ensure snarkOS is started using ./run-client.sh or ./ run-prover.sh. 2. My node is unable to connect to peers on the network. * Ensure ports 4133/tcp and 3033/tcp are open on your router and OS firewall. * Ensure snarkOS is started using ./run-client.sh or ./ run-prover.sh. 3. I can't generate a new address * Before running the command above (snarkos account new) try source ~/.bashrc * Also double-check the spelling of snarkos. Note the directory is /snarkOS, the command is snarkos 5. Command Line Interface To run a node with custom settings, refer to the full list of options and flags available in the snarkOS CLI. The full list of CLI flags and options can be viewed with snarkos --help: snarkOS The Aleo Team USAGE: snarkos [OPTIONS] OPTIONS: -h, --help Print help information -v, --verbosity Specify the verbosity [options: 0, 1, 2, 3] [default: 2] SUBCOMMANDS: account Commands to manage Aleo accounts clean Cleans the snarkOS node storage help Print this message or the help of the given subcommand(s) start Starts the snarkOS node update Update snarkOS The following are the options for the snarkos start command: USAGE: snarkos start [OPTIONS] OPTIONS: --network Specify the network ID of this node [default: 3] --beacon Specify this node as a beacon, with the account private key as an argument --validator Specify this node as a validator, with the account private key as an argument --prover Specify this node as a prover, with the given account private key as an argument --client Specify this node as a client, with an optional account private key as an argument --node Specify the IP address and port for the node server [default: 0.0.0.0:4133] --connect Specify the IP address and port of a peer to connect to --rest Specify the IP address and port for the REST server [default: 0.0.0.0:3033] --norest If the flag is set, the node will not initialize the REST server --nodisplay If the flag is set, the node will not render the display --verbosity Specify the verbosity of the node [options: 0, 1, 2, 3] [default: 2] --logfile Specify the path to the file where logs will be stored [default: /tmp/snarkos.log] --dev Enables development mode, specify a unique ID for this node -h, --help Print help information 6. Development 6.1 Quick Start In one terminal, start the beacon by running: cargo run --release -- start --nodisplay --dev 0 --beacon "" In a second terminal, run: cargo run --release -- start --nodisplay --dev 1 --prover "" This procedure can be repeated to start more nodes. 6.2 Operations It is important to initialize the nodes starting from 0 and incrementing by 1 for each new node. The following is a list of options to initialize a node (replace with a number starting from 0): cargo run --release -- start --nodisplay --dev --beacon "" cargo run --release -- start --nodisplay --dev --validator "" cargo run --release -- start --nodisplay --dev --prover "" cargo run --release -- start --nodisplay --dev --client "" cargo run --release -- start --nodisplay --dev When no node type is specified, the node will default to --client. Clean Up To clean up the node storage, run: cargo run --release -- clean --dev 7. License We welcome all contributions to snarkOS. Please refer to the license for the terms of contributions. License: GPL v3 About A Decentralized Operating System for ZK Applications snarkos.org Topics rust cryptography blockchain zero-knowledge zksnarks aleo Resources Readme License Apache-2.0 license Stars 2.6k stars Watchers 82 watching Forks 1.8k forks Report repository Releases 26 v2.1.3 Latest Jun 22, 2023 + 25 releases Used by 281 * @Arm-Kaz * @Smol-Smolin * @Mit-Mityi * @Day-Daybov * @Mir-Miron * @Oib-Usib * @Lil-Lilit * @Lil-Lilit + 273 Contributors 50 * @howardwu * @raychu86 * @ljedrz * @niklaslong * @Protryon * @collinc97 * @dependabot-preview[bot] * @dependabot[bot] * @gakonst * @jules * @daniilr + 39 contributors Languages * Rust 99.4% * Shell 0.6% Footer (c) 2023 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact GitHub * Pricing * API * Training * Blog * About You can't perform that action at this time.