Voi
Run the node using SystemD
Recommended Hardware Requirements
SPEC | Recommend |
---|---|
CPU | 4 Cores 8 threads (ARM64 or x86-64) |
RAM | 16 GB (DDR4) |
SSD | 100 GB SSD or NVME |
NETWORK | 100 Mbps |
Option 1: Automatic
STEP 1: Install
echo "export ALGORAND_DATA=/var/lib/algorand/" >> $HOME/.bashrc && source $HOME/.bashrc
cd $HOME && curl -o voi-auto.sh https://raw.githubusercontent.com/vnbnode/binaries/main/Projects/VOI/voi-auto.sh && bash voi-auto.sh
- Wait Catchpoint downloaded blocks = Catchpoint total blocks
STEP 2: Create or Recovery Wallet, Account Address
cd $HOME && curl -o voi-create.sh https://raw.githubusercontent.com/vnbnode/binaries/main/Projects/VOI/voi-create.sh && bash voi-create.sh
STEP 3: Set Node Name
sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry name -n Nodename
sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry enable &&\
sudo systemctl restart voi
- Save GUID
STEP 4: Create Participation
cd $HOME && curl -o participation.sh https://raw.githubusercontent.com/vnbnode/binaries/main/Projects/VOI/participation.sh && bash participation.sh
STEP 5: Faucet
-
Get Role
- Use /voi-testnet-faucet
STEP 6: Register and Active
cd $HOME && curl -o register-active-auto.sh https://raw.githubusercontent.com/vnbnode/binaries/main/Projects/VOI/register-active-auto.sh && bash register-active-auto.sh
STEP 7: Faucet again
- Fill the GUID you saved in Step 3
NOTE
: Node must run for more than 4-6 hours to be able to faucet
Option 2: Manual
1/ Need install software and its updates
sudo apt install -y jq bc gnupg2 curl software-properties-common
curl -o - https://releases.algorand.com/key.pub | sudo tee /etc/apt/trusted.gpg.d/algorand.asc
sudo add-apt-repository "deb [arch=amd64] https://releases.algorand.com/deb/ stable main"
- Select ENTER
2/ Install Node Algorand
sudo apt update && sudo apt install -y algorand && echo OK
3/ Stop Node Algorand
sudo systemctl stop algorand && sudo systemctl disable algorand && echo OK
4/ Setup goal
echo -e "\nexport ALGORAND_DATA=/var/lib/algorand/" >> ~/.bashrc && source ~/.bashrc && echo OK
5/ Configure Node VOI
sudo algocfg set -p DNSBootstrapID -v "<network>.voi.network" -d /var/lib/algorand/ &&\
sudo algocfg set -p EnableCatchupFromArchiveServers -v true -d /var/lib/algorand/ &&\
sudo chown algorand:algorand /var/lib/algorand/config.json &&\
sudo chmod g+w /var/lib/algorand/config.json &&\
echo OK
sudo curl -s -o /var/lib/algorand/genesis.json https://testnet-api.voi.nodly.io/genesis &&\
sudo chown algorand:algorand /var/lib/algorand/genesis.json &&\
echo OK
sudo cp /lib/systemd/system/algorand.service /etc/systemd/system/voi.service &&\
sudo sed -i 's/Algorand daemon/Voi daemon/g' /etc/systemd/system/voi.service &&\
echo OK
6/ Start Node VOI
sudo systemctl start voi && sudo systemctl enable voi && echo OK
7/ Check Status
goal node status
8/ Get catch up with the network
goal node catchup $(curl -s https://testnet-api.voi.nodly.io/v2/status|jq -r '.["last-catchpoint"]') &&\
echo OK
9/ Wait for catchup to complete:
goal node status -w 1000
10/ Enable Telemetry Node Name
sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry name -n Nodename
sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry enable &&\
sudo systemctl restart voi
- Save GUID
11/ Create Wallet
goal wallet new voi
- Save Your backup phrase
12/ To create a new account address
goal account new
- Save Address
13/ Goal account export
echo -ne "\nEnter your voi address: " && read addr &&\
goal account export -a $addr
- Fill Address
- Save Exported key
14/ Generate your participation keys:
getaddress() {
if [ "$addr" == "" ]; then echo -ne "\nNote: Completing this will remember your address until you log out. "; else echo -ne "\nNote: Using previously entered address. "; fi; echo -e "To forget the address, press Ctrl+C and enter the command:\n\tunset addr\n";
count=0; while ! (echo "$addr" | grep -E "^[A-Z2-7]{58}$" > /dev/null); do
if [ $count -gt 0 ]; then echo "Invalid address, please try again."; fi
echo -ne "\nEnter your voi address: "; read addr;
addr=$(echo "$addr" | sed 's/ *$//g'); count=$((count+1));
done; echo "Using address: $addr"
}
getaddress &&\
echo -ne "\nEnter duration in rounds [press ENTER to accept default)]: " && read duration &&\
start=$(goal node status | grep "Last committed block:" | cut -d\ -f4) &&\
duration=${duration:-2000000} &&\
end=$((start + duration)) &&\
dilution=$(echo "sqrt($end - $start)" | bc) &&\
goal account addpartkey -a $addr --roundFirstValid $start --roundLastValid $end --keyDilution $dilution
- Fill: 8000000
- Wait Create Key Your Participation
15/ Check your participation status
getaddress() {
if [ "$addr" == "" ]; then echo -ne "\nNote: Completing this will remember your address until you log out. "; else echo -ne "\nNote: Using previously entered address. "; fi; echo -e "To forget the address, press Ctrl+C and enter the command:\n\tunset addr\n";
count=0; while ! (echo "$addr" | grep -E "^[A-Z2-7]{58}$" > /dev/null); do
if [ $count -gt 0 ]; then echo "Invalid address, please try again."; fi
echo -ne "\nEnter your voi address: "; read addr;
addr=$(echo "$addr" | sed 's/ *$//g'); count=$((count+1));
done; echo "Using address: $addr"
}
getaddress &&\
goal account dump -a $addr | jq -r 'if (.onl == 1) then "You are online!" else "You are offline." end'
16/ Faucet
- Faucet Here
- Get Role
- Use /voi-testnet-faucet
17/ Register and Active Participating
getaddress() {
if [ "$addr" == "" ]; then echo -ne "\nNote: Completing this will remember your address until you log out. "; else echo -ne "\nNote: Using previously entered address. "; fi; echo -e "To forget the address, press Ctrl+C and enter the command:\n\tunset addr\n";
count=0; while ! (echo "$addr" | grep -E "^[A-Z2-7]{58}$" > /dev/null); do
if [ $count -gt 0 ]; then echo "Invalid address, please try again."; fi
echo -ne "\nEnter your voi address: "; read addr;
addr=$(echo "$addr" | sed 's/ *$//g'); count=$((count+1));
done; echo "Using address: $addr"
}
getaddress &&\
goal account changeonlinestatus -a $addr -o=1 &&\
sleep 1 &&\
goal account dump -a $addr | jq -r 'if (.onl == 1) then "You are online!" else "You are offline." end'
18/ Faucet again
- Fill the GUID you saved in Step 10
NOTE
: Node must run for more than 4-6 hours to be able to faucet
19/ Check logs
tail -f /var/lib/algorand/node.log
20/ Check
- Explorer: https://voi.observer/explorer/home
- https://cswenor.github.io/voi-proposer-data/health.html
- https://voi-node-info.boeieruurd.com/
- https://voirewards.com/
Upgrade new version
source ~/.bashrc
sudo apt update
sudo systemctl stop voi
sudo apt install algorand
sudo systemctl start voi
goal version -v
goal node status
sudo systemctl status voi