snarkOS 是一个用于零知识应用程序的去中心化操作系统。 此代码构成了 Aleo 网络的支柱, 它验证交易并以可公开验证的方式存储加密状态应用程序。
以下是运行 Aleo 节点的最低要求:
- 操作系统: 仅限 64 位架构,最新的安全性
- 客户端:Ubuntu 22.04 (LTS)、macOS Sonoma 或更高版本、Windows 11 或更高版本
- 证明者: Ubuntu 22.04 (LTS)、macOS Sonoma 或更高版本
- 验证器:Ubuntu 22.04 (LTS)
- CPU:仅限 64 位架构
- 客户端:32 核
- Provers:32 核(首选 64 核)
- 验证器:32 核(首选 64 核)
- 内存:DDR4 或更高
- 客户端:32GB 内存
- 证明者:32GB 内存(首选 64GB 或更大)
- 验证器:64GB 内存(最好是 128GB 或更大)
- 存储:PCIe Gen 3 x4、PCIe Gen 4 x2 NVME SSD 或更高
- 客户端:300GB 磁盘空间
- Provers:32GB 磁盘空间
- 验证器:2TB 磁盘空间(最好是 4TB 或更大)
- 网络:对称、商用、永远在线
- 客户端:100Mbps 的上传和下载带宽
- 证明者:500Mbps 的上传和下载带宽
- 验证者:1000Mbps 的上传和下载带宽
- 图形处理器:
- 客户端:目前不需要
- 证明者:支持 CUDA 的 GPU(可选)
- 验证人:目前不需要
请注意,为了运行具有竞争力的 Aleo Prover,机器需要的不仅仅是这些要求。
在开始之前,请确保您的机器已安装。安装 Rust 的说明可以在这里找到。Rust v1.79+
首先克隆此 GitHub 存储库:
git clone --branch mainnet --single-branch https://github.com/AleoNet/snarkOS.git
接下来,移动到目录中:snarkOS
cd snarkOS
git checkout tags/testnet-beta
[对于 Ubuntu 用户]提供了用于安装依赖项的帮助程序脚本。从目录中,运行:snarkOS
./build_ubuntu.sh
最后,安装 :snarkOS
cargo install --locked --path .
请确保路由器和操作系统防火墙上的端口和端口处于打开状态。4130/tcp
3030/tcp
首先按照 Build Guide 中的说明进行操作。
接下来,要从该目录启动客户端节点,请运行:snarkOS
./run-client.sh
首先按照 Build Guide 中的说明进行操作。
接下来,生成一个 Aleo 账户地址:
snarkos account new
这将在终端中输出一个新的 Aleo 帐户。
请记得保存账户私钥和查看密钥。下面是一个示例输出:
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
接下来,要从该目录启动验证节点,请运行:snarkOS
./run-prover.sh
出现提示时,输入您的 Aleo 私钥:
Enter the Aleo Prover account private key:
APrivateKey1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- 确保您的计算机已安装。安装 Rust 的说明可以在这里找到。
Rust v1.66+
- 如果在编译过程中出现较大错误,请尝试运行 。
cargo clean
- Ensure 已使用 或 启动。
snarkOS
./run-client.sh
./run-prover.sh
- 确保路由器和操作系统防火墙上的端口和打开。
4130/tcp
3030/tcp
- Ensure is started using or .
snarkOS
./run-client.sh
./run-prover.sh
- Before running the command above () try
snarkos account new
source ~/.bashrc
- Also double-check the spelling of . Note the directory is , and the command is
snarkos
/snarkOS
snarkos
- Generate an account with if you haven’t already
snarkos account new
- Sign a message with your private key using
snarkos account sign --raw -m "Message" --private-key-file=<PRIVATE_KEY_FILE>
- Verify your signature with
snarkos account verify --raw -m "Message" -s sign1SignatureHere -a aleo1YourAccountAddress
Note, using the flag with the command will sign plaintext messages as bytes rather than Aleo values such as or .--raw
1u8
100field
To run a node with custom settings, refer to the options and flags available in the CLI.snarkOS
The full list of CLI flags and options can be viewed with :snarkos --help
snarkOS
The Aleo Team <hello@aleo.org>
USAGE:
snarkos [OPTIONS] <SUBCOMMAND>
OPTIONS:
-h, --help Print help information
-v, --verbosity <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 command:snarkos start
USAGE:
snarkos start [OPTIONS]
OPTIONS:
--network <NETWORK_ID> Specify the network ID of this node [default: 3]
--validator Specify this node as a validator
--prover Specify this node as a prover
--client Specify this node as a client
--private-key <PRIVATE_KEY> Specify the node's account private key
--private-key-file <PRIVATE_KEY_FILE> Specify the path to a file containing the node's account private key
--node <IP:PORT> Specify the IP address and port for the node server [default: 0.0.0.0:4130]
--connect <IP:PORT> Specify the IP address and port of a peer to connect to
--rest <REST> Specify the IP address and port for the REST server [default: 0.0.0.0:3030]
--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 <VERBOSITY_LEVEL> Specify the verbosity of the node [options: 0, 1, 2, 3] [default: 2]
--logfile <PATH> Specify the path to the file where logs will be stored [default: /tmp/snarkos.log]
--dev <NODE_ID> Enables development mode, specify a unique ID for this node
在第一个终端中,通过运行以下命令来启动第一个验证者:
cargo run --release -- start --nodisplay --dev 0 --validator
在第二个终端中,通过运行以下命令来启动第二个验证器
cargo run --release -- start --nodisplay --dev 1 --validator
在第三个终端中,通过运行以下命令来启动第三个验证者:
cargo run --release -- start --nodisplay --dev 2 --validator
在第四个终端中,通过运行以下命令启动第四个 validator:
cargo run --release -- start --nodisplay --dev 3 --validator
从这里开始,此过程可用于进一步启动验证者和客户。
请务必从每个新节点开始初始化节点,并为每个新节点初始化节点。0
1
以下是初始化节点的选项列表(替换为以 开头的数字):<NODE_ID>
0
cargo run --release -- start --nodisplay --dev <NODE_ID> --validator
cargo run --release -- start --nodisplay --dev <NODE_ID> --prover
cargo run --release -- start --nodisplay --dev <NODE_ID> --client
cargo run --release -- start --nodisplay --dev <NODE_ID>
如果未指定节点类型,则节点将默认为 。--client
要使用脚本运行本地开发网络,请先安装 .tmux
macOS 的
要在 macOS 上安装,您可以使用包管理器。 如果您还没有安装,您可以在他们的网站上找到说明。tmux
Homebrew
Homebrew
# Once Homebrew is installed, run:
brew install tmux
Ubuntu 浏览器
在 Ubuntu 和其他基于 Debian 的系统上,您可以使用包管理器:apt
sudo apt update
sudo apt install tmux
窗户
有几种方法可以在 Windows 上使用:tmux
- 首先,安装适用于 Linux 的 Windows 子系统。
- 设置 WSL 并安装 Linux 发行版(例如 Ubuntu)后,打开 WSL 终端并像在本机 Linux 系统上一样进行安装:
tmux
sudo apt update
sudo apt install tmux
要启动本地开发网,请运行:
./devnet.sh
按照终端中的说明启动 devnet。
要切换到本地开发网中的下一个节点,请运行:
Ctrl+b n
要切换到本地开发网中的上一个节点,请运行:
Ctrl+b p
要在本地开发网中选择节点,请运行:
Ctrl+b w
要在本地开发网络中手动选择节点,请运行:
Ctrl+b :select-window -t {NODE_ID}
要停止本地开发网,请运行:
Ctrl+b :kill-session
然后,按 。Enter
要清理节点存储,请运行:
cargo run --release -- clean --dev <NODE_ID>