Cover photo

[AIT3] Aptos Validatorの構築方法

1. 目的

2022年8月に実施される、AptosにおいてAIT3 (報酬付きテストネット)でのValidatorの構築方法を記載します。

Validatorを建てて、テストネットに貢献するとAptosトークンでの報酬が付与されますので、ぜひ参加ください。

実施内容

  • Aptos Validatorの構築 <-------------- 今回の実施項目です

  • Petra Walletのインストール

  • Aptos Communityサイトに登録

日程

※ アメリカ西海岸時刻での記載です。日本との時差に注意してください

  • 登録開始日:8月19日

  • 登録終了日:8月25日

  • 合格通知日:8月29日

  • テストネット開始:8月30日

  • テストネット終了:9月9日

2. 要件

2-1. Hardware要件

  • CPU:

    • 8 cores, 16 threads以上

    • 2.8GHz以上

    • Intel Xeon Skylakeより最新

  • Memory 32GB RAM以上

  • **Storage **300GB以上

  • Network

    • 帯域 : 1 Gbps以上

    • Validator: 6180, 9101 (登録時のみでOK)ポートの開放

    • FullNodeの場合: 6182, 9101 (登録時のみでOK), 80, 8080ポートの開放

Aptos公式のサイトより参照しています

https://aptos.dev/nodes/ait/node-requirements/

2-2. 各種クラウド / VPSでの対応スペック

  • AWS

    • c5.4xlarge

    • c6i.4xlarge

  • GCP

    • c2-standard-16

  • Azure

    • Standard_B8ms

  • Contabo

    • Cloud VPS L

  • Hetzner

    • CX51

3. 導入方法

3-1. 事前準備

サーバの準備が必要になります サーバスペックや、セキュリティルールについては今回の要件にあわせてください

Aptosでは、地理的な分散性やLayer1 for everyoneの実現のために、AIT1ではスキルベースではなく地理的な分散性以外では完全にランダムに選出されました。 今回のAIT3では過去のAITにおいて良い結果を出した一部の人の枠はありますが、それ以外の枠については引き続きランダム選出との話が出ています。 Aptosにおいて地理的な分散性は重要項目であるため、ぜひトライして分散化に協力してください。

誰も建てない国や地域ででサーバを建てると選出されやすくなるため、ぜひトライしてみてください

AIT2における選出ノードの位置です ノードを構築する際に参考にしてください

AIT2ノード位置
AIT2ノード位置

**注記事項

**AIT2の応募段階では、Aptos公式からアフリカ大陸でのNodeを希望するという要件が出ていましたが、現状のAptosのコンセンサスメカニズムにおいて、各ノード間の遅延がVoting powerの大きく影響するようです。

各ノード (アメリカやヨーロッパに集中している)からの地理的な距離が遠いNodeは、Voting powerが小さくなり、報酬付与要件を満たすのが困難な事象が発生しました。

今回のAIT3ではconsensus proposalやVotingに関する要件はないため、大きな問題はないと想定しますが、ご注意ください

3-2. Install方法

3-2-1. エンジニアの人

ぜひ、スキルアップ & Aptosの知識の取得のためにも、公式手順書でトライしてみてください

https://aptos.dev/nodes/validator-node/validators

** 3-2-2. 初心者の方**

以前までは、簡易インストーラーを作成していましたが、AITに選出されてから困ることもあるため、今回は公式手順を順々に追って実施する方法を紹介します。

3-2-2-1. サーバにログインする

3-2-2-2. Rootユーザ (特権ユーザ)になる

sudo su -

cd &HOME
post image

3-2-2-3.パッケージのUpdateとインストール

sudo apt update -y

sudo apt upgrade -y

sudo apt install unzip -y
post image

3-2-2-4. dockerのインストール

sudo apt-get install ca-certificates curl gnupg lsb-release wget -y
post image
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
post image
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
post image
sudo apt-get update
post image
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
post image
sudo mkdir -p ~/.docker/cli-plugins/
post image
sudo curl -SL https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
post image
sudo chmod +x ~/.docker/cli-plugins/docker-compose
post image
sudo chown $USER /var/run/docker.sock
post image

3-2-2-5. Aptos CLI v0.3.1のインストール

sudo wget -qO aptos-cli.zip https://github.com/aptos-labs/aptos-core/releases/download/aptos-cli-v0.3.1/aptos-cli-0.3.1-Ubuntu-x86_64.zip
post image
sudo unzip -o aptos-cli.zip -d /usr/bin
post image
sudo chmod +x /usr/bin/aptos
post image

3-2-2-6. Aptos Nodeのインストール

sudo mkdir -p ~/testnet  && cd ~/testnet

sudo wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/docker-compose.yaml

sudo wget https://raw.githubusercontent.com/aptos-labs/aptos-core/main/docker/compose/aptos-node/validator.yaml
post image

Keyの作成

aptos genesis generate-keys --output-dir ~/testnet/keys
post image

Validator設定ファイルの作成

# テンプレート
aptos genesis set-validator-configuration \
    --local-repository-dir ~/testnet \
    --username <ユーザ名> \
    --owner-public-identity-file ~/testnet/keys/public-keys.yaml \
    --validator-host <クラウド・VPSで契約したサーバのIP>:6180 \
    --stake-amount 100000000000000

# 例
aptos genesis set-validator-configuration \
    --local-repository-dir ~/testnet \
    --username aptosjapan \
    --owner-public-identity-file ~/testnet/keys/public-keys.yaml \
    --validator-host 18.183.24.1:6180 \
    --stake-amount 100000000000000

■<ユーザ名> 好きな名前を設定してください。日本語は不可です。 アルファベットと数字のみ使用可能です

**■<クラウド・VPSで契約したサーバのIP> **サーバにログインした際のIPです

post image

Validator Setファイルの作成

aptos genesis generate-layout-template --output-file ~/testnet/layout.yaml
post image

Validator Setファイルの編集

sed -e 's/root_key: ~/root_key: "D04470F43AB6AEAA4EB616B72128881EEF77346F2075FFE68E14BA7DEBD8095E"/g' -i ~/testnet/layout.yaml

sed -e 's/chain_id: 4/chain_id: 43/g' -i ~/testnet/layout.yaml

# テンプレート
sed -e 's/users: \[\]/users: \["<ユーザ名>"\]/g' -i ~/testnet/layout.yaml

# 例
sed -e 's/users: \[\]/users: \["aptosjapan"\]/g' -i ~/testnet/layout.yaml

■<ユーザ名> 先ほどの「Validator設定ファイルの作成」で設定したユーザ名と同じ名前にしてください

post image

Aptos Frameworkのダウンロード

wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.3.0/framework.mrb -P ~/testnet
post image

Genesis blobとwaypointのコンパイル

aptos genesis generate-genesis --local-repository-dir ~/testnet --output-dir ~/testnet
post image

Aptos Nodeの起動

docker compose up -d
post image

3-2-2-7. 起動後の確認

Aptos Nodeが起動しているか確認

post image
curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_consensus_proposals_count

上記コマンドを複数回実行して、数値がカウントアップしていることを確認

post image
curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_state_sync_version{type=\"synced\"}

上記コマンドを複数回実行して、数値がカウントアップしていることを確認

post image

3-2-2-8. 登録に必要な情報の確認

# テンプレート
cat ~/testnet/<ユーザ名>/operator.yaml

# 例
cat ~/testnet/aptosjapan/operator.yaml

■<ユーザ名> 先ほどの「Validator設定ファイルの作成」で設定したユーザ名と同じ名前にしてください

post image

実施内容

  • Aptos Validatorの構築

  • Petra Walletのインストール <-------------- 次の実施項目です

  • Aptos Communityサイトに登録