2022年8月に実施される、AptosにおいてAIT3 (報酬付きテストネット)でのValidatorの構築方法を記載します。
Validatorを建てて、テストネットに貢献するとAptosトークンでの報酬が付与されますので、ぜひ参加ください。
※ アメリカ西海岸時刻での記載です。日本との時差に注意してください
Aptos公式のサイトより参照しています
サーバの準備が必要になります
サーバスペックや、セキュリティルールについては今回の要件にあわせてください
Aptosでは、地理的な分散性やLayer1 for everyoneの実現のために、AIT1ではスキルベースではなく地理的な分散性以外では完全にランダムに選出されました。
今回のAIT3では過去のAITにおいて良い結果を出した一部の人の枠はありますが、それ以外の枠については引き続きランダム選出との話が出ています。
Aptosにおいて地理的な分散性は重要項目であるため、ぜひトライして分散化に協力してください。
誰も建てない国や地域ででサーバを建てると選出されやすくなるため、ぜひトライしてみてください
AIT2における選出ノードの位置です
ノードを構築する際に参考にしてください
**注記事項
**AIT2の応募段階では、Aptos公式からアフリカ大陸でのNodeを希望するという要件が出ていましたが、現状のAptosのコンセンサスメカニズムにおいて、各ノード間の遅延がVoting powerの大きく影響するようです。
各ノード (アメリカやヨーロッパに集中している)からの地理的な距離が遠いNodeは、Voting powerが小さくなり、報酬付与要件を満たすのが困難な事象が発生しました。
今回のAIT3ではconsensus proposalやVotingに関する要件はないため、大きな問題はないと想定しますが、ご注意ください
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設定ファイルの作成」で設定したユーザ名と同じ名前にしてください