Запуск валидатора используя Azure

Запуск на Azure

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

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

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

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

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

mkdir -p ~/$WORKSPACE

2. Создайте контейнер хранилища blob-объектов для хранения состояния 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.1.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=main"
  region        = <azure region>  # Specify the region
  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 вы можете проверить, созданы ли эти ресурсы:

  • az aks get-credentials --resource-group aptos-$WORKSPACE --name aptos-$WORKSPACE tчтобы настроить доступ для кластера k8s

  • kubectl 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 <pick 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

ПРИМЕЧАНИЕ:

Суффикс -e1 относится к порядковому номеру эры. Если вы изменили порядковый номер эры, убедитесь, что он совпадает при создании секрета.

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