Skip to content

A Decentralized Operating System for Zero-Knowledge Applications

License

Notifications You must be signed in to change notification settings

snowtigersoft/snarkOS

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

snarkOS

Table of Contents

1. Overview

snarkOS is a decentralized operating system for private applications. It forms the backbone of Aleo and enables applications to verify and store state in a publicly verifiable manner.

2. Quick Start

Option 1 - Download snarkOS

Step 1. Download the executable

[] [] []
[] [] []

Step 2. Install the executable

macOS or Linux

Unzip the package and in terminal, cd into the unzipped folder and run:

mv snarkos /usr/local/bin
Windows
Coming Soon

Step 3. Start snarkOS

To start a snarkOS client node, run:

snarkos

Option 2 - Install from Crates.io

Prerequisite

For Ubuntu users, start by installing the following dependencies.

$sudo apt-get install -y pkg-config clang libssl-dev

Step 1. Install Rust

We recommend installing Rust using rustup. You can install rustup as follows:

macOS or Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows

Download the Windows 64-bit executable or Windows 32-bit executable and follow the on-screen instructions.

Step 2. Install from Crates.io

In your terminal, run:

cargo install snarkos

Step 3. Start snarkOS

To start a snarkOS client node, run:

snarkos

Option 3 - Build from Source Code

Step 1. Install Rust

We recommend installing Rust using rustup. You can install rustup as follows:

macOS or Linux
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows

Download the Windows 64-bit executable or Windows 32-bit executable and follow the on-screen instructions.

Step 2. Build from Source Code

Start by cloning this repository:

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

Next, compile and install snarkOS:

cargo install --path . --locked

Step 3. Start snarkOS

To start a snarkOS client node, run:

snarkos

Option 4 - Build from Source Code and run on a Docker container

Start by cloning this repository:

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

Then install Docker and build the container:

Docker build

docker build --rm -t aleohq/snarkos:latest .

Docker run

docker run -d -p 4131:4131 --name snarkos aleohq/snarkos:latest

Devnet (local)

docker-compose -p snarkos up -d

3. Usage Guide

3.1 Connecting to Aleo Testnet I

To start a client node, run:

snarkos

To start a mining node, run:

snarkos --is-miner --miner-address {ALEO_ADDRESS}

To run a node with custom settings, refer to the full list of options and flags available in the CLI.

3.2 Command Line Interface

Full list of CLI flags and options can be viewed with snarkos --help:

snarkOS <version>
Run an Aleo node (include -h for more options)

USAGE:
    snarkos [FLAGS] [OPTIONS]

FLAGS:
    -h, --help           Prints help information
        --is-miner       Start mining blocks from this node
        --no-jsonrpc     Run the node without running the json rpc server

OPTIONS:
        --connect <ip>                           Specify one or more node ip addresses to connect to on startup
    -i, --ip <ip>                                Specify the ip of your node
        --max-peers <max-peers>                  Specify the maximum number of peers the node can connect to
        --mempool-interval <mempool-interval>    Specify the frequency in seconds the node should fetch a sync node's mempool
        --min-peers <min-peers>                  Specify the minimum number of peers the node should connect to
        --miner-address <miner-address>          Specify the address that will receive miner rewards
        --network <network-id>                   Specify the network id (default = 1) of the node
    -d, --path <path>                            Specify the node's storage path
    -p, --port <port>                            Specify the port the node is run on
        --rpc-password <rpc-password>            Specify a password for rpc authentication
        --rpc-port <rpc-port>                    Specify the port the json rpc server is run on
        --rpc-username <rpc-username>            Specify a username for rpc authentication
        --verbose <verbose>                      Specify the verbosity (default = 1) of the node [possible values: 0, 1, 2, 3]

Examples

Guard RPC endpoints
snarkos --rpc-username <Username> --rpc-password <Password>
Manually connect to a peer on the network
snarkos --connect "<IP ADDRESS>"

3.3 Configuration File

A config.toml file is generated in the ~/.snarkOS/ directory when the node is initialized for the time. Updating this config.toml file allows node operators to specify default settings for the node without having to specify additional information in the CLI.

4. JSON-RPC Interface

By default, snarkOS launches a JSON-RPC server to allow external interfacing with the Aleo network. Documentation of the RPC endpoints can be found here

5. Additional Information

For additional information, please refer to the official Aleo documentation page.

6. License

License: GPL v3

About

A Decentralized Operating System for Zero-Knowledge Applications

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 99.2%
  • Other 0.8%