Запуск валидатора используя AWS
Запуск на AWS
Данное руководство предполагает, что у вас уже есть настроенная учетная запись AWS.
При необходимости выполните предварительно следующие установки:
Terraform 1.1.7: https://www.terraform.io/downloads.html
Kubernetes CLI: https://kubernetes.io/docs/tasks/tools/
AWS CLI: https://aws.amazon.com/cli/
Создайте рабочий каталог для вашей конфигурации.
Выберите имя рабочей области, например,
testnet
. Примечание: это определит имя рабочей области Terraform, которое, в свою очередь, будет использоваться для формирования имен ресурсов.
export WORKSPACE=testnet
Создайте каталог для рабочей области
mkdir -p ~/$WORKSPACE
2. Создайте сегмент хранилища S3 для хранения состояния Terraform на AWS, вы можете сделать это в пользовательском интерфейсе AWS или с помощью команды:
aws s3api create-bucket --bucket <bucket name> --region <region name>
3. Создайте файл Terraform с названием main.tf
в вашем рабочем каталоге:
cd ~/$WORKSPACE
vi main.tf
4. Измените файл main.tf
для настройки Terraform, создайте полный узел из модуля Terraform. Пример содержимого для main.tf
:
terraform {
required_version = "~> 1.1.0"
backend "s3" {
bucket = "terraform.aptos-node"
key = "state/aptos-node"
region = <aws region>
}
}
provider "aws" {
region = <aws region>
}
module "aptos-node" {
# download Terraform module from aptos-labs/aptos-core repo
source = "github.com/aptos-labs/aptos-core.git//terraform/aptos-node/aws?ref=main"
region = <aws region> # Specify the region
# zone_id = "<Route53 zone id>" # zone id for Route53 if you want to use DNS
era = 1 # bump era number to wipe the chain
chain_id = 23
image_tag = "testnet" # Specify the docker image tag to use
validator_name = "<Name of Your Validator>"
}
Полные параметры настройки см. в файле переменных здесь и на helm values.
5. Инициализируйте Terraform в том же каталоге, где и ваш файл main.tf
terraform init
Это загрузит для вас все зависимости Terraform, в папку .terraform
в вашем текущем рабочем каталоге.
6. Создайте новую рабочую область Terraform, чтобы изолировать свои среды:
terraform workspace new $WORKSPACE
# This command will list all workspaces
terraform workspace list
7. Примените конфигурацию
terraform apply
Это может занять некоторое время (20 минут), Terraform создаст все ресурсы в вашей облачной учетной записи.
8. После завершения применения Terraform вы можете проверить, созданы ли эти ресурсы:
aws eks update-kubeconfig --name aptos-$WORKSPACE
, чтобы настроить доступ для кластера k8skubectl get pods
должен иметь haproxy, валидатора и полную ноду. С ожидающими проверки валидатором и полной нодойpending
(требуются дальнейшие действия на более поздних этапах)kubectl get svc
должен иметьvalidator-lb
иfullnode-lb
, с внешним IP-адресом, которым вы можете поделиться позже для подключения
9. Получите информацию об IP-адресе вашей ноды:
export VALIDATOR_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-validator-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')"
export FULLNODE_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-fullnode-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')"
10. Сгенерируйте пары ключей (ключ владельца ноды, консенсус-ключ и сетевой ключ) в вашем рабочем каталоге.
aptos genesis generate-keys --output-dir ~/$WORKSPACE
Будут созданы три файла: private-keys.yaml
, validator-identity.yaml
, validator-full-node-identity.yaml
ВАЖНО: сделайте резервную копию файлов ваших ключей в безопасном месте. Эти файлы важны для вас, чтобы установить право собственности на вашу ноду, вы также будете использовать эту информацию, чтобы позже получить свое вознаграждение, если будете соответствовать требованиям. Никогда не делитесь этими ключами с кем-либо еще.
11. Настройте информацию о валидаторе. Это вся информация, которая вам понадобится для регистрации на сайте нашего сообщества позже.
aptos genesis set-validator-configuration --keys-dir ~/$WORKSPACE --local-repository-dir ~/$WORKSPACE --username <select a username for your node> --validator-host $VALIDATOR_ADDRESS:6180 --full-node-host $FULLNODE_ADDRESS:6182
Это создаст YAML файл в вашем рабочем каталоге с вашим именем пользователя, например, aptosbot.yaml
. Это будет выглядеть как:
---
account_address: 7410973313fd0b5c69560fd8cd9c4aaeef873f869d292d1bb94b1872e737d64f
consensus_key: "0x4e6323a4692866d54316f3b08493f161746fda4daaacb6f0a04ec36b6160fdce"
account_key: "0x83f090aee4525052f3b504805c2a0b1d37553d611129289ede2fc9ca5f6aed3c"
network_key: "0xa06381a17b090b8db5ffef97c6e861baad94a1b0e3210e6309de84c15337811d"
validator_host:
host: 30247cc34f270cb8.elb.us-west-2.amazonaws.com
port: 6180
full_node_host:
host: abc5b9734d4cc418.elb.us-west-2.amazonaws.com
port: 6182
stake_amount: 1
12. Создайте файл макета YAML, который определяет узел в validatorSet. Для тестового режима мы можем создать генезис блоб, содержащий только одну ноду.
vi layout.yaml
Добавьте корневой ключ, имя пользователя ноды и chain_id в файлеlayout.yaml
, например:
---
root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"
users:
- <username you specified in step 11>
chain_id: 23
13. Загрузите байт-код AptosFramework Move в папку с именемframework
.
Загрузите Aptos Framework со страницы релиза: https://github.com/aptos-labs/aptos-core/releases/tag/aptos-framework-v0.1.0
wget https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.1.0/framework.zip
unzip framework.zip
Теперь у вас есть папка с именемframework
, которая содержит байт-код Move в формате .mv
.
14. Скомпилируйте генезис блоб и путевую точку.
aptos genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
Это создаст в вашем рабочем каталоге два файла genesis.blob
и waypoint.txt
.
15. Итак, напомним, что в вашем рабочем каталоге должен быть список из следующих файлов:
main.tf
файлы Terraform для установки модуля aptos-нодыprivate-keys.yaml
персональные ключи для владельца аккаунта, консенсуса и сетиvalidator-identity.yaml
персональные ключи для настройки идентификации валидатораvalidator-full-node-identity.yaml
персональные ключи для настройки идентификации валидатора полной ноды<username>.yaml
информация об обеих нодах валидирующей/полнойlayout.yaml
файл макета для определения корневого ключа, пользователя валидатора и ID цепиframework
папка, содержащая весь байт-код move для AptosFramework.waypoint.txt
путевая точка транзакции генезисаgenesis.blob
бинарный генезис файл, содержащий всю информацию о фреймворке, validatorSet и многом другом.
16. Вставьте genesis.blob
, waypoint.txt
и идентификационные файлы как секретные в кластер k8s.
kubectl create secret generic ${WORKSPACE}-aptos-node-genesis-e1 \
--from-file=genesis.blob=genesis.blob \
--from-file=waypoint.txt=waypoint.txt \
--from-file=validator-identity.yaml=validator-identity.yaml \
--from-file=validator-full-node-identity.yaml=validator-full-node-identity.yaml
17. Проверьте все запущенные модули.
kubectl get pods
NAME READY STATUS RESTARTS AGE
node1-aptos-node-fullnode-e9-0 1/1 Running 0 4h31m
node1-aptos-node-haproxy-7cc4c5f74c-l4l6n 1/1 Running 0 4h40m
node1-aptos-node-validator-0 1/1 Running 0 4h30m
Вы успешно завершили настройку своей ноды в тестовом режиме. Теперь вы можете перейти на веб-сайт Aptos community для регистрации.
Last updated