December 8, 2022

Aleo | Testnet 3

Aleo is the first platform to offer fully private applications. Aleo achieves this by leveraging decentralized systems and zero-knowledge cryptography to protect user data on the web.


Contents


Project Information

Description

Aleo is a blockchain that uses zero-disclosure proof technology. The use of this technology allows for a high level of privacy when working with the network - non-disclosure of the sender's wallet and transaction amount.

The main thing about Aleo is that it supports smart contracts, and consequently the possibility to create DApps on it. It has developed its own application development language and its own development environment (IDE) specifically for this purpose.

Aleo raised $298M by a16z, Polychain Capital, Coinbase Ventures, Samsung and many others.

The prover incentive period

The prover incentive period will run from December 2, 2022, at 00:00 UTC to January 26, 2023, at 23:59 UTC, or until the network has emitted 7.5M credits, whichever comes first.

Token Awards for the Incentive Period

As mentioned in our prior blog post, we have set aside 25M Aleo credits for Testnet 3 incentives. Prover incentives account for 30% or 7.5M credits.


Requirements

The following are minimum requirements to run an Aleo node:

  • CPU: 16-cores (32-cores preferred)
  • RAM: 16GB of memory (32GB preferred)
  • Storage: 128GB of disk space
  • Network: 10 Mbps of upload and download bandwidth

Please note to run an Aleo Prover that is competitive, the machine will require more than these requirements.


Launch

1. Server Preparation

Update packages

sudo apt update && sudo apt upgrade -y

Install the required packages

sudo apt install wget jq git build-essential pkg-config libssl-dev -y

2. Rust

Install Rust

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/rust.sh)

The version of Rust must be at least 1.65.0

rustc --version

If not, delete with the command below and install again

 <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/installers/rust.sh) \
 -un

3. Node Installation

Clone a repository with a node

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

Go to the snarkOS folder

cd snarkOS

Build a snarkOS binary

cargo build --release

Copy the binary file to the standard binary storage

mv $HOME/snarkOS/target/release/snarkos /usr/bin

3.1 Create a Wallet

Create a Wallet

snarkos account new > $HOME/aleo_account.txt

Make a backup copy of the wallet data file, saving it in a safe place (the command shows the path)

echo $HOME/aleo_account.txt

Do not show the private key to anyone

4. Continued

Add the wallet address to the system as a variable

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n aleo_wallet_address -v `grep -oPm1 "(?<=Address  )([^%]+)(?=$)" $HOME/aleo_account.txt`

Add a private wallet key to the system as a variable

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n aleo_private_key -v `grep -oPm1 "(?<=Private Key  )([^%]+)(?=$)" $HOME/aleo_account.txt`

Check the addition of variables to the system

echo $aleo_wallet_address $aleo_private_key

If one of them is missing, go back to the step with the wallet.

5. Final

Open the ports used

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/ports_opening.sh) 3033 4133

Create a service file

printf "[Unit]
Description=Aleo Prover
After=network-online.target

[Service]
User=$USER
ExecStart=`which snarkos` start --nodisplay --prover $aleo_private_key
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target" > /etc/systemd/system/aleod.service

Run the service file

sudo systemctl daemon-reload
sudo systemctl enable aleod
sudo systemctl restart aleod

Add a command to view the log of a node in the system as a variable

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n aleo_log -v "sudo journalctl -fn 100 -u aleod" -a

Make sure the node is running

aleo_log

Installation of several hardwares into one wallet

1. Use step 1-3(including 3.1) to prepare hardware

2. Installing a file manager

Return to the root folder

cd ..

Install the Midnight Commander

sudo apt -y install mc

Launch Midnight Commander

mc

3. Changing a file

aleo_account.txt
  1. Find the file named aleo_account.txt
  2. Press F4
  3. Type 1 and press Enter
Contents of file
  1. Delete all content except "Private Key"
  2. Replace the Private Key with the key of your main wallet

4. Saving

  1. Press Ctrl + X
  2. Type Y and press Enter
  3. Press Enter

5. Working with a wallet

5.1 Add the wallet address to the system as a variable

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n aleo_wallet_address -v `grep -oPm1 "(?<=Address  )([^%]+)(?=$)" $HOME/aleo_account.txt`

After this command, insert the address of the main wallet

5.1 Add a private wallet key to the system as a variable

. <(wget -qO- https://raw.githubusercontent.com/SecorD0/utils/main/miscellaneous/insert_variable.sh) -n aleo_private_key -v `grep -oPm1 "(?<=Private Key  )([^%]+)(?=$)" $HOME/aleo_account.txt`

5.3 Check the addition of variables to the system

echo $aleo_wallet_address $aleo_private_key

6. Back to Final


Updating

If you have not downloaded the GitHub repository with the node (snarkOS folder), then clone it

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

Update binary files

cd $HOME/snarkOS && \
git stash; \
git pull; \
cargo clean; \
cargo build --release; \
mv $HOME/snarkOS/target/release/snarkos /usr/bin; \
cd

Restart the service file

sudo systemctl restart aleod

Deleting

Stop the node

sudo systemctl stop aleod

Delete service file

sudo systemctl disable aleod
rm -rf /etc/systemd/system/aleod.service
sudo systemctl daemon-reload

Delete the folder with the project and the binary file

rm -rf $HOME/snarkOS /usr/bin/snarkos

Useful Commands

Available variables (remove echo if used)

echo $aleo_wallet_address
echo $aleo_private_key

View log

aleo_log
sudo journalctl -fn 100 -u aleod

Restart the node

sudo systemctl restart aleod

Useful Links

Official website of the project

Discord | Twitter | GitHub | Blog

Docs | Explorer


Note

This article was written on the basis of the 1package one. We have translated it into English and added clarifications.