На AWS

Это пошаговое руководство по установке ноды Aptos на AWS. Эти шаги позволят настроить ноду валидатора и полную ноду на отдельных серверах.

Прежде чем приступить к работе

Убедитесь, что вы выполнили эти предварительные шаги, прежде чем продолжить:

  1. Настройте свою учетную запись AWS.

  2. Убедитесь, что на вашем локальном компьютере установлено следующее:

Установка

ОДНА НОДА ВАЛИДАТОРА + ОДНА НОДА ПОЛНОГО ВАЛИДАТОРА Если вы выполните все приведенные ниже инструкции, в кластере будет работать одна валидаторная нода и одна валидаторная полная нода.

  1. Создайте рабочий каталог для конфигурации ноды.

  • Выберите имя рабочей области, например, testnet. Примечание: Это определяет имя рабочей области Terraform, которое, в свою очередь, используется для формирования имен ресурсов.

export WORKSPACE=testnet
  • Создайте каталог для рабочей среды.

mkdir -p ~/$WORKSPACE
  • Выберите имя пользователя для своей ноды, например, alice.

export USERNAME=alice

2. Создайте хранилище S3 bucket для хранения состояния Terraform на AWS. Это можно сделать в пользовательском интерфейсе AWS или с помощью приведенной ниже команды:

aws s3 mb s3://<bucket name> --region <region name>

3. Создайте файл Terraform с именем main.tf в вашем рабочем каталоге:

cd ~/$WORKSPACE
vi main.tf

4. Измените файл main.tf для настройки Terraform и создания полной ноды Aptos из модуля Terraform. Смотрите ниже пример содержимого файла main.tf:

terraform {
  required_version = "~> 1.2.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=testnet"
  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      = 43
  image_tag     = "testnet" # Specify the image tag to use
  validator_name = "<Name of your Validator>"
}

Полные возможности настройки см:

5. Инициализируйте Terraform в каталоге $WORKSPACE, где вы создали файл 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 создаст все ресурсы на вашей учетной записи облака AWS.

8. После завершения применения terraform apply вы можете проверить, созданы ли эти ресурсы:

  • aws eks update-kubeconfig --name aptos-$WORKSPACE: Чтобы настроить доступ для кластера k8s, выполните следующие действия.

  • kubectl get pods: Здесь должны быть haproxy, validator и fullnode, с валидатором и fullnode pod pending (требуют дальнейших действий на последующих этапах).

  • kubectl get svc: Это должно было validator-lb и fullnode-lb, с внешним IP-адресом, который вы сможете использовать позже для подключения.

9. Внесите IP-информацию ноды в вашу среду:

export VALIDATOR_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-0-validator-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')"
export FULLNODE_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-0-fullnode-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')"

10. Сгенерируйте пары ключей (владелец ноды, голосующий, ключ оператора, ключ консенсуса и ключ сети) в своем рабочем каталоге.

aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys

Это создаст 4 файла ключей в каталоге ~/$WORKSPACE/keys:

  • public-keys.yaml

  • private-keys.yaml

  • validator-identity.yaml, и

  • validator-full-node-identity.yaml.

ВАЖНО Сохраните файлы закрытых ключей в безопасном месте. Эти файлы ключей важны для установления права собственности на вашу ноду. Никогда и никому не передавайте закрытые ключи.

11.Настройте информацию о валидаторе. Это вся информация, необходимая для последующей регистрации на сайте сообщества Aptos.

aptos genesis set-validator-configuration \
  --local-repository-dir ~/$WORKSPACE \
  --username $USERNAME \
  --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \
  --validator-host $VALIDATOR_ADDRESS:6180 \
  --full-node-host $FULLNODE_ADDRESS:6182 \
  --stake-amount 100000000000000

Это создаст два файла YAML в каталоге ~/$WORKSPACE/$USERNAME: owner.yaml и operator.yaml.

12. Загрузите genesis blob и waypoint для сети, к которой вы хотите подключиться, полный список сетей можно найти здесь

Например, чтобы загрузить testnet genesis и waypoint:

curl https://raw.githubusercontent.com/aptos-labs/aptos-genesis-waypoint/main/testnet/waypoint.txt -o waypoint.txt
curl https://raw.githubusercontent.com/aptos-labs/aptos-genesis-waypoint/main/testnet/genesis.blob -o genesis.blob

13. Подводя итог, можно сказать, что в вашем рабочем каталоге должен быть список файлов:

  • main.tf: Файлы Terraform для установки модуля aptos-node (из шагов 3 и 4).

  • keys папка, в которую входят:

    • public-keys.yaml: Открытые ключи для учетной записи владельца, консенсуса, сетевого взаимодействия (из шага 10).

    • private-keys.yaml: Закрытые ключи для учетной записи владельца, консенсуса, сетевого взаимодействия (из шага 10).

    • validator-identity.yaml: Закрытые ключи для установки идентификатора валидатора (из шага 10).

    • validator-full-node-identity.yaml: Закрытые ключи для установки полной идентификации ноды валидатора (из шага 10).

  • username папка, в которую входят:

    • owner.yaml: определите сопоставление владельца, оператора и избирателя. Это все те же учетные записи в тестовом режиме (из шага 11).

    • operator.yaml: Информация об ноде, которая будет использоваться как для валидатора, так и для полной ноды (из шага 11).

  • waypoint.txt: Путевая точка для транзакции генезиса (из шага 12).

  • genesis.blob Бинарный файл genesis, содержащий всю информацию о фреймворке, validatorSet и многое другое (из шага 12).

14. Вставьте genesis.blob, waypoint.txt и файлы идентификации как секретные в кластер k8s.

kubectl create secret generic ${WORKSPACE}-aptos-node-0-genesis-e1 \
    --from-file=genesis.blob=genesis.blob \
    --from-file=waypoint.txt=waypoint.txt \
    --from-file=validator-identity.yaml=keys/validator-identity.yaml \
    --from-file=validator-full-node-identity.yaml=keys/validator-full-node-identity.yaml

ПРИМЕЧАНИЕ Суффикс -e1 относится к номеру эпохи. Если вы изменили номер эпохи, убедитесь, что он совпадает при создании секрета.

15. Убедитесь, что все модули запущены.

kubectl get pods

NAME                                        READY   STATUS    RESTARTS   AGE
node1-aptos-node-0-fullnode-e9-0              1/1     Running   0          4h31m
node1-aptos-node-0-haproxy-7cc4c5f74c-l4l6n   1/1     Running   0          4h40m
node1-aptos-node-0-validator-0                1/1     Running   0          4h30m

Теперь вы успешно завершили настройку ноды.

Last updated