На Azure

Запуск на Azure

Это руководство предполагает, что у вас уже настроена учетная запись Azure.

При необходимости установите предварительные компоненты:

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

  1. Создайте рабочий каталог для вашей настройки.

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

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

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

export USERNAME=alice

2. Создайте хранилище blob storage для хранения состояния Terraform в Azure, вы можете сделать это в Azure UI или с помощью команды:

az group create -l <azure region> -n aptos-$WORKSPACE
az storage account create -n <storage account name> -g aptos-$WORKSPACE -l <azure region> --sku Standard_LRS
az storage container create -n <container name> --account-name <storage account name> --resource-group aptos-$WORKSPACE

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

cd ~/$WORKSPACE
vi main.tf

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

terraform {
  required_version = "~> 1.2.0"
  backend "azurerm" {
    resource_group_name  = <resource group name>
    storage_account_name = <storage account name>
    container_name       = <container name>
    key                  = "state/validator"
  }
}
module "aptos-node" {
  # download Terraform module from aptos-labs/aptos-core repo
  source        = "github.com/aptos-labs/aptos-core.git//terraform/aptos-node/azure?ref=testnet"
  region        = <azure region>  # Specify the region
  era           = 1              # bump era number to wipe the chain
  chain_id      = 43
  image_tag     = "testnet" # Specify the docker image tag to use
  validator_name = "<Name of Your Validator>"
}

Для получения полной информации о возможностях настройки см. файл переменных здесь, а также значения Helm.

5. Инициализируйте Terraform в том же каталоге, где находится ваш файл main.tf.

terraform init

Это загрузит для вас все зависимости terraform в папку .terraform в вашем текущем рабочем каталоге.

6. Создайте новое рабочeе пространство Terraform, чтобы изолировать среды:

terraform workspace new $WORKSPACE
# This command will list all workspaces
terraform workspace list

7. Примените настройку.

terraform apply

Это может занять некоторое время (~20 минут), Terraform создаст все ресурсы на вашем облачной учетной записи.

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

  • az aks get-credentials --resource-group aptos-$WORKSPACE --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