Skip to main content

Voi

Run the node using SystemD

SPECRecommend
CPU4 Cores 8 threads (ARM64 or x86-64)
RAM16 GB (DDR4)
SSD100 GB SSD or NVME
NETWORK100 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

image

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

image

  • Use /voi-testnet-faucet

image

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

image

  • 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"

image

  • Select ENTER

2/ Install Node Algorand

sudo apt update && sudo apt install -y algorand && echo OK

image

3/ Stop Node Algorand

sudo systemctl stop algorand && sudo systemctl disable algorand && echo OK

image

4/ Setup goal

echo -e "\nexport ALGORAND_DATA=/var/lib/algorand/" >> ~/.bashrc && source ~/.bashrc && echo OK

image

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

image

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

image

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

image

6/ Start Node VOI

sudo systemctl start voi && sudo systemctl enable voi && echo OK

image

7/ Check Status

goal node status

image

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

image

9/ Wait for catchup to complete:

goal node status -w 1000

image

10/ Enable Telemetry Node Name

sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry name -n Nodename

image

sudo ALGORAND_DATA=/var/lib/algorand diagcfg telemetry enable &&\
sudo systemctl restart voi

image

  • Save GUID

11/ Create Wallet

goal wallet new voi

image

  • Save Your backup phrase

12/ To create a new account address

goal account new

image

  • Save Address

13/ Goal account export

echo -ne "\nEnter your voi address: " && read addr &&\
goal account export -a $addr
  • Fill Address

image

  • 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

image

  • 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'

image

16/ Faucet

image

  • Use /voi-testnet-faucet

image

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

image

  • 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

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

Thank to support VNBnode.

Visit us at: