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.
We recommend installing Rust using rustup. You can install rustup
as follows:
macOS or Linux:
bash
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Windows (64-bit):
Download the Windows 64-bit executable and follow the on-screen instructions.
Windows (32-bit):
Download the Windows 32-bit executable and follow the on-screen instructions.
We recommend installing snarkOS this way. In your terminal, run:
bash
cargo install snarkos
Now to use snarkOS, in your terminal, run:
bash
snarkos
Alternatively, you can install snarkOS by building from the source code as follows:
```bash
git clone https://github.com/AleoHQ/snarkOS cd snarkOS
$ cargo build --release ```
This will generate an executable under the ./target/release
directory. To run snarkOS, run the following command:
bash
./target/release/snarkos
bash
docker build -t snarkos:latest .
or
bash
docker-compose build
bash
docker run -d -p 4131:4131 --name snarkos snarkos
or
bash
docker-compose up
To start a client node, run:
snarkos
To start a mining node, run:
snarkos --is-miner
To run a node with custom settings, refer to the full list of options and flags available in the CLI or simply modify the snarkOS configuration file.
Full list of CLI flags and options can be viewed with snarkos --help
:
``` snarkOS 1.0.0 Run an Aleo node (include -h for more options)
USAGE: snarkos [FLAGS] [OPTIONS]
FLAGS: -h, --help Prints help information --is-bootnode Run the node as a bootnode (IP is hard coded in the protocol) --is-miner Start mining blocks from this node --no-jsonrpc Run the node without running the json rpc server -q, --quiet Do not show any logging in the console
OPTIONS:
--connect
snarkos --rpc-username <Username> --rpc-password <Password>
snarkos --connect "<IP ADDRESS>"
A snarkOS.toml
file is generated in the ~/.snarkOS/
directory when the node is initialized for the time.
Updating this snarkOS.toml
file allows node operators to specify default settings for the node without
having to specify additional information in the CLI.
By default, snarkOS runs a JSON-RPC server to allow external interfacing with the Aleo network. Documentation of the RPC endpoints can be found here
For additional information, please refer to the official Aleo documentation page.