[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公式のサイトより参照しています

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の知識の取得のためにも、公式手順書でトライしてみてください

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

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

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

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

sudo su -

cd &HOME

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

sudo apt update -y

sudo apt upgrade -y

sudo apt install unzip -y

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

sudo apt-get install ca-certificates curl gnupg lsb-release wget -y
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
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
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
sudo mkdir -p ~/.docker/cli-plugins/
sudo curl -SL https://github.com/docker/compose/releases/download/v2.6.1/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
sudo chmod +x ~/.docker/cli-plugins/docker-compose
sudo chown $USER /var/run/docker.sock

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
sudo unzip -o aptos-cli.zip -d /usr/bin
sudo chmod +x /usr/bin/aptos

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

Keyの作成

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

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です

Validator Setファイルの作成

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

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設定ファイルの作成」で設定したユーザ名と同じ名前にしてください

Aptos Frameworkのダウンロード

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

Genesis blobとwaypointのコンパイル

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

Aptos Nodeの起動

docker compose up -d

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

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

docker ps
curl 127.0.0.1:9101/metrics 2> /dev/null | grep aptos_consensus_proposals_count

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

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

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

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

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

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

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

実施内容

  • Aptos Validatorの構築
  • Petra Walletのインストール <-------------- 次の実施項目です
  • Aptos Communityサイトに登録
Subscribe to qyeah
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.