Welcome to the world of snarkOS! This decentralized operating system is designed specifically for zero-knowledge applications, forming the backbone of the Aleo network. With snarkOS, you can verify transactions and store encrypted states in a publicly-verifiable way. Let’s dive into how you can build and run your own Aleo node, ensuring you meet all the requirements and troubleshoot any issues that might arise along the way!
Table of Contents
- 1. Overview
- 2. Build Guide
- 3. Run an Aleo Node
- 4. FAQs
- 5. Command Line Interface
- 6. Development Guide
- 7. Contributors
- 8. License
1. Overview
snarkOS is a decentralized operating system designed for zero-knowledge applications. It operates within the Aleo network, verifying transactions and securely storing encrypted states that can be publicly verified.
2. Build Guide
2.1 Requirements
Before we get started, make sure your machine meets the following **minimum** requirements to run an Aleo node:
- OS: 64-bit architectures only (Ubuntu 22.04, macOS Sonoma or later, Windows 11 or later).
- CPU: 64-bit architectures with at least 32 cores (64 cores preferred).
- RAM: 32GB (64GB preferred for Provers), and 64GB (128GB preferred for Validators).
- Storage: NVME SSD with at least 300GB for Clients, 32GB for Provers, and 2TB (4TB preferred) for Validators.
- Network: Always-on connection with specific upload/download bandwidth requirements.
2.2 Installation
To begin, ensure your machine has Rust v1.79+ installed. You can find installation instructions here.
Next, clone the GitHub repository:
git clone --branch mainnet --single-branch https://github.com/AleoNetsnarkOS.git
Move into the snarkOS directory:
cd snarkOS
Check out the testnet release:
git checkout tags/testnet-beta
For Ubuntu users, use the helper script to install dependencies:
./build_ubuntu.sh
Lastly, install snarkOS:
cargo install --locked --path .
Ensure that ports 4130/tcp and 3030/tcp are open on your router and the OS firewall.
3. Run an Aleo Node
3.1 Run an Aleo Client
Once you’ve followed the Build Guide, you can start a client node with the following command:
./run-client.sh
3.2 Run an Aleo Prover
First, generate an Aleo account address:
snarkos account new
This will output your new Aleo account in the terminal. Make sure to save your private key and view key!
To start a proving node, run:
./run-prover.sh
Once prompted, input your private key:
Enter the Aleo Prover account private key: APrivateKey1xxxxxxxxx
4. FAQs
Here are some common issues you might encounter, along with solutions:
- My node is unable to compile. Ensure Rust v1.66+ is installed, and try running
cargo clean
to resolve large errors. - My node is unable to connect to peers on the network. Check that ports 4130/tcp and 3030/tcp are open.
- I can’t generate a new address. Make sure you run
source ~/.bashrc
and check your directory’s spelling of snarkOS. - How do I use the CLI to sign and verify a message?
- Generate an account with
snarkos account new
. - Sign a message with
snarkos account sign --raw -m Message --private-key-file=PRIVATE_KEY_FILE
. - Verify the signature with
snarkos account verify --raw -m Message -s sign1SignatureHere -a aleo1YourAccountAddress
.
- Generate an account with
5. Command Line Interface
For custom configurations, you can use the command line options. To list all options, use:
snarkos --help
6. Development Guide
6.1 Quick Start
To start multiple validators, open different terminals and run:
cargo run --release -- start --nodisplay --dev [NODE_ID] --validator
Remember to replace [NODE_ID]
with a unique number (0, 1, 2, etc.). Start Clients in the same way.
6.2 Operations
Node initialization follows the pattern: cargo run --release -- start --nodisplay --dev NODE_ID --[node type]
. The default type is --client
if none is specified.
7. Contributors
Thanks to all contributors who help improve snarkOS!
8. License
For terms regarding contributions, please refer to the Contributors section.
Troubleshooting
If you encounter issues while building or running snarkOS, here are some troubleshooting ideas:
- Always ensure your dependencies are correctly installed by following the steps in the installation guide.
- If you face port issues, verify that your firewall settings allow traffic through the necessary ports.
- If you’re getting compilation errors, double-check that your Rust version matches the required version.
For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.