Aptos Validator and Fullnode Install Guide

Prerequisites

Hardware Requirements

  • CPU: 8 cores 2.8GHz or faster (Intel Xeon Skylake or newer).
  • Memory: 23GiB RAM.
  • At least 300GB SSD (2TB NVMe is preferred)

Operating System

User Permissions

Install the Petra Wallet Extension

Initial Setup for Validator

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install libssl-dev -y && sudo apt-get install fail2ban -y && sudo apt-get install jq -y && sudo apt-get install zip unzip

Install Docker

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
apt-cache policy docker-ce
sudo apt install docker-ce -y
sudo systemctl status docker

Install Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Validator Setup

sudo ufw allow proto tcp from any to any port 6180
sudo ufw allow proto tcp from any to any port 6181
sudo ufw allow proto tcp from any to any port 8080
sudo ufw enable
export WORKSPACE=testnet
export USERNAME=<node name>
mkdir ~/$WORKSPACE
cd ~/$WORKSPACE
export WORKSPACE=testnet
export USERNAME=kingfisher
mkdir ~/$WORKSPACE
cd ~/$WORKSPACE
wget -qO docker-compose.yaml https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yamlwget -qO validator.yaml https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml
cd ~/$WORKSPACEnano docker-compose.yaml
wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.2/aptos-cli-0.3.2-Ubuntu-x86_64.zipunzip aptos-cli-0.3.2-Ubuntu-x86_64.zip
./aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys

Validator Config

./aptos genesis set-validator-configuration \
--local-repository-dir ~/$WORKSPACE \
--username $USERNAME \
--owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml\
--validator-host <validator_external_IP_or_domain>:6180 \
--full-node-host <fullnode_external_IP_or_domain>:6182 \
--stake-amount 100000000000000
./aptos genesis set-validator-configuration \
--local-repository-dir ~/$WORKSPACE \
--username $USERNAME \
--owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml\
--validator-host <validator_external_IP_or_domain>:6180 \
--stake-amount 100000000000000
./aptos genesis generate-layout-template --output-file ~/$WORKSPACE/layout.yaml
./aptos init --profile ait3-owner --rest-url http://ait3.aptosdev.com

Initialize Stake Owner

cat ~/$WORKSPACE/$USERNAME/operator.yaml
cat ~/$WORKSPACE/$USERNAME/owner.yaml
./aptos stake initialize-stake-owner \
--initial-stake-amount 100000000000000 \
--operator-address <operator-address> \
--voter-address <voter-address> \
--profile ait3-owner

Create Operator Account

cat ~/$WORKSPACE/$USERNAME/operator.yaml
./aptos account create --account <operator-account> --profile ait3-owner
./aptos account transfer \
--account <operator-account> \
--amount 10000 \
--profile ait3-owner

Bootstrap the Validator

cd ~/$WORKSPACEwget -qO genesis.blob https://raw.githubusercontent.com/aptos-labs/aptos-ait3/main/genesis.blobwget -qO waypoint.txt https://raw.githubusercontent.com/aptos-labs/aptos-ait3/main/waypoint.txt
cd ~/$WORKSPACE/keysnano validator-identity.yaml

Join the Validator Set

./aptos init --profile ait3-operator --rest-url http://ait3.aptosdev.com
./aptos account list --profile ait3-operator
./aptos node update-validator-network-addresses  \
--pool-address <owner-address> \
--operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
--profile ait3-operator
./aptos node update-consensus-key  \
--pool-address <owner-address> \
--operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
--profile ait3-operator
./aptos node join-validator-set \
--pool-address <owner-address> \
--profile ait3-operator \
--max-gas 4000
./aptos node show-validator-set --profile ait3-operator | jq -r '.Result.active_validators' | grep <account_address>
./aptos node show-validator-set --profile ait3-operator | jq -r '.Result.pending_active'

Launch your Validator

cd ~/$WORKSPACEsudo docker-compose up -d

Check Docker Logs

sudo docker logs -f testnet_validator_1 --tail 60

Setup Complete!

Initial Setup for Fullnode

sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt-get install fail2ban -y && sudo apt-get install jq -y && sudo apt-get install zip unzip

Install Docker

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"apt-cache policy docker-ce
sudo apt install docker-ce -y
sudo systemctl status docker

Install Docker Compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Fullnode Setup

Firewall Config

sudo ufw allow proto tcp from any to any port 6181
sudo ufw allow proto tcp from any to any port 6182
sudo ufw allow proto tcp from any to any port 8080
sudo ufw enable
export FULLNODENAME=<fullnode name>
export WORKSPACE=testnet
mkdir ~/$WORKSPACE
cd ~/$WORKSPACE
wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.2/aptos-cli-0.3.2-Ubuntu-x86_64.zipunzip aptos-cli-0.3.2-Ubuntu-x86_64.zip
wget -qO docker-compose-fullnode.yaml https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose-fullnode.yamlwget -qO fullnode.yaml https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/fullnode.yaml
cd ~/$WORKSPACEnano docker-compose.yaml
sudo nano fullnode.yaml
./aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys
cd ~/$WORKSPACEwget -qO genesis.blob https://raw.githubusercontent.com/aptos-labs/aptos-ait3/main/genesis.blobwget -qO waypoint.txt https://raw.githubusercontent.com/aptos-labs/aptos-ait3/main/waypoint.txt

Connect your Fullnode to your Validator

./aptos genesis set-validator-configuration \
--local-repository-dir ~/$WORKSPACE \
--username $FULLNODENAME \
--owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml\
--validator-host <YOUR_VALIDATOR_IP>:6180 \
--stake-amount 100000000000000 \
--full-node-host <YOUR_FULLNODE_IP>:6182

Launch your Fullnode

cd ~/$WORKSPACEcp docker-compose-fullnode.yaml docker-compose.yamlsudo docker-compose up -d

Check Docker Logs

sudo docker logs -f testnet_fullnode_1 --tail 60

--

--

Artifact Staking is a cutting edge, forward leaning blockchain infrastructure provider.

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Artifact Staking

Artifact Staking

Artifact Staking is a cutting edge, forward leaning blockchain infrastructure provider.