DEV Community

EgorMajj
EgorMajj

Posted on

Подключение к Aptos Incentivized Testnet

Делайте это только в том случае, если вы получили подтверждение по электронной почте от команды Aptos о том, что вы соответствуете требованиям. У нод, не прошедших отбор, не будет достаточно токенов для участия в тестнете. В этом случае вы все равно можете запустить публичную полную ноду, если хотите.

Инициализация стэйкинг - пула

В AIT3 у нас будет поддержка пользовательского интерфейса, позволяющая владельцу управлять стэйкинг пулом, подробности здесь. Если вы уже сделали это через пользовательский интерфейс, вы можете проигнорировать этот шаг и перейти к "Загрузка ноды валидатора".

В качестве альтернативы, вы также можете использовать CLI для инициализации стэйкинг-пула:

  • Инициализируйте CLI с помощью приватного ключа вашего кошелька, который вы можете получить из Настройки -> Учетные данные
aptos init --profile ait3-owner \
  --rest-url https://ait3.aptosdev.com
Enter fullscreen mode Exit fullscreen mode
  • Инициализация стэйкинг-пула с помощью CLI
aptos stake initialize-stake-owner \
  --initial-stake-amount 100000000000000 \
  --operator-address <operator-address> \
  --voter-address <voter-address> \
  --profile ait3-owner
Enter fullscreen mode Exit fullscreen mode
  • Не забудьте перевести несколько coin на учетную запись оператора для оплаты газа, это можно сделать с помощью Petra, или CLI
aptos account create --account <operator-account> --profile ait3-owner
aptos account transfer \
--account <operator-account> \
--amount 5000 \
--profile ait3-owner
Enter fullscreen mode Exit fullscreen mode

Загрузка ноды валидатора
Прежде чем присоединиться к тестовой сети, вам необходимо загружать вашу ноду с помощью genesis blob и waypoint, предоставленных командой Aptos Labs. Это переведет вашу ноду из тестового режима в режим prod.

Использование исходного кода

  • Остановите вашу ноду и удалите каталог данных. Убедитесь, что вы удалили и файл secure-data.json, путь к которому определен здесь.
  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.
  • Обновите account_address в validator-identity.yaml на адрес кошелька владельца, больше ничего не меняйте, ключи оставьте как есть.
  • Внесите последние изменения в ветку testnet. Это должен быть коммит b2228f286b5fe7631dee62690ae5d1087017e20d
  • Закройте порт метрики 9101 и порт REST API 80 для вашего валидатора (вы можете оставить их открытыми для полной ноды).
  • Перезапуск ноды

Использование Docker

  • Остановите ноду и удалите тома данных, docker compose down --volumes. Убедитесь, что вы удалили и файл secure-data.json, путь к которому определен здесь.
  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.
  • Обновите account_address в validator-identity.yaml на адрес кошелька владельца.
  • Обновите образ docker для использования тега testnet_b2228f286b5fe7631dee62690ae5d1087017e20d.
  • Закройте порт метрики 9101 и порт REST API 80 для вашего валидатора (удалите его из файла docker compose), вы можете оставить его открытым для полной ноды.
  • Перезапуск ноды: docker compose up

Использование Terraform

  • Увеличьте число era (эпох) в конфигурации Terraform, это сотрет данные после применения.
  • Обновите chain_id до 47.
  • Обновите образ докера для использования тега testnet_b2228f286b5fe7631dee62690ae5d1087017e20d
  • Закройте порт метрики и порт REST API для валидатора (вы можете оставить его открытым для полной ноды), добавьте значения helm в ваш файл main.tf, например:
module "aptos-node" {
    ...

    helm_values = {
        service = {
          validator = {
            enableRestApi = false
            enableMetricsPort = false
          }
        }
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Применить Terraform: terraform apply
  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.
  • Обновите account_address в validator-identity.yaml на адрес кошелька владельца, больше ничего не меняйте, сохраните ключи как есть.
  • Пересоздайте секреты, убедитесь, что имя секрета соответствует номеру вашей era, например, если у вас era = 3, вы должны заменить имя секрета на ${WORKSPACE}-aptos-node-0-genesis-e3
export WORKSPACE=<your workspace name>

kubectl create secret generic ${WORKSPACE}-aptos-node-0-genesis-e2 \
    --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
Enter fullscreen mode Exit fullscreen mode

Присоединение к пулу валидаторов

На данном этапе вы уже использовали свою учетную запись владельца для инициализации стэйкинг-пула валидаторов и назначить оператора на свою учетную запись оператора. Далее необходимо настроить ноду валидатора, используя учетную запись оператора, и присоединиться к набору валидаторов.

1.Инициализация Aptos CLI

aptos init --profile ait3-operator \
--private-key <operator_account_private_key> \
--rest-url https://ait3.aptosdev.com \
--skip-faucet
Enter fullscreen mode Exit fullscreen mode

ПОДСКАЗКА
account_private_key для оператора можно найти в файле private-keys.yaml в папке ~/$WORKSPACE/keys.

2.Проверьте баланс учетной записи валидатора, убедитесь, что у вас есть coins для оплаты газа. (Если нет, переведите несколько coins на эту учетную запись с вашей учетной записи владельца).

Вы можете проверить в проводнике https://explorer.devnet.aptos.dev/account/<account-address>?network=ait3 или использовать CLI

aptos account list --profile ait3-operator
Enter fullscreen mode Exit fullscreen mode

Это покажет вам баланс coin на учетной записи валидатора. Вы должны увидеть что-то вроде:

"coin": {
    "value": "5000"
  }
Enter fullscreen mode Exit fullscreen mode

3.Обновление сетевых адресов валидаторов в сети

aptos node update-validator-network-addresses  \
  --pool-address <owner-address> \
  --operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
  --profile ait3-operator
Enter fullscreen mode Exit fullscreen mode

4.Обновление ключа консенсуса валидатора в сети

aptos node update-consensus-key  \
  --pool-address <owner-address> \
  --operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
  --profile ait3-operator
Enter fullscreen mode Exit fullscreen mode

5.Присоединитесь к набору валидаторов

aptos node join-validator-set \
  --pool-address <owner-address> \
  --profile ait3-operator \
  --max-gas 10000 
Enter fullscreen mode Exit fullscreen mode

МАКСИМАЛЬНЫЙ ГАЗ
Вы можете изменить указанное выше значение max-gas. Убедитесь, что вы отправили своему оператору достаточно токенов, чтобы оплатить стоимость газа.

ValidatorSet будет обновляться при каждой смене эпохи, то есть раз в 2 часа. Вы увидите, что ваша нода присоединяется к набору валидаторов только в следующую эпоху. Валидатор и нода начнут синхронизироваться, как только ваш валидатор будет включен в набор валидаторов.

6.Проверьте набор валидаторов

aptos node show-validator-set --profile ait3-operator | jq -r '.Result.pending_active' | grep <account_address>
Enter fullscreen mode Exit fullscreen mode

Вы увидите вашу ноду валидатора в списке "pending_active". Когда произойдет следующее изменение эпохи, нода будет перемещена в список "active_validators". Это произойдет в течение одного часа после завершения предыдущего шага. В течение этого времени вы можете увидеть ошибки типа "No connected AptosNet peers", что является нормальным.

aptos node show-validator-set --profile ait3-operator | jq -r '.Result.active_validators' | grep <account_address>
Enter fullscreen mode Exit fullscreen mode

Проверка подключения нод

ОПРЕДЕЛЕНИЕ ЖИЗНЕСПОСОБНОСТИ НОДЫ
Подробности определения жизнеспособности ноды смотрите здесь.
После того как ваша валидаторная нода присоединилась к набору валидаторов, вы можете проверить правильность, выполнив следующие шаги:

1.Убедитесь, что ваша нода подключается к другим пирам в сети testnet. Замените 127.0.0.1 на IP/DNS вашего валидатора, если он развернут в облаке.

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_connections{.*\"Validator\".*}"
Enter fullscreen mode Exit fullscreen mode

Команда выведет количество входящих и исходящих соединений вашей ноды валидатора. Например:

aptos_connections{direction="inbound",network_id="Validator",peer_id="f326fd30",role_type="validator"} 5
aptos_connections{direction="outbound",network_id="Validator",peer_id="f326fd30",role_type="validator"} 2
Enter fullscreen mode Exit fullscreen mode

Если одна из метрик больше нуля, то ваша нода подключена хотя бы к одному из аналогов в тестовой сети.

2.Вы также можете проверить, подключена ли ваша нода к ноде AptosLabs, замените на peer ID, которым поделилась команда Aptos.

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_network_peer_connected{.*remote_peer_id=\"<Aptos Peer ID>\".*}"
Enter fullscreen mode Exit fullscreen mode

3.Проверьте, синхронизируется ли состояние вашей ноды

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_state_sync_version"
Enter fullscreen mode Exit fullscreen mode

Вы должны ожидать, что версия "committed" будет постоянно увеличиваться.

4.Как только состояние вашей ноды синхронизируется с последней версией, вы также можете проверить, продвигается ли консенсус, и ваша нода предлагает

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_consensus_current_round"

curl 127.0.0.1:9101/metrics 2> /dev/null | grep "aptos_consensus_proposals_count"
Enter fullscreen mode Exit fullscreen mode

Следует ожидать, что это число будет постоянно расти.

5.Наконец, самый простой способ проверить, правильно ли функционирует ваша нода, - это проверить, получает ли она вознаграждение за стэйкинг. Вы можете проверить это в проводнике, https://explorer.devnet.aptos.dev/account/<owner-account-address>?network=ait3

0x1::stake::StakePool

"active": {
  "value": "100009129447462"
}
Enter fullscreen mode Exit fullscreen mode

Вы должны ожидать, что активное значение для вашего StakePool будет постоянно увеличиваться. Оно обновляется в каждую эпоху, поэтому будет обновляться каждые два часа.

Выход из набора валидаторов

Нода может в любой момент выйти из набора валидаторов, или это произойдет автоматически, когда на учетной записи валидатора не будет достаточного количества стэйкинга. Чтобы покинуть набор валидаторов, вы можете выполнить следующие действия:

1.Выход из набора валидаторов (вступит в силу в следующую эпоху)

aptos node leave-validator-set --profile ait3-operator --pool-address <owner-address>
Enter fullscreen mode Exit fullscreen mode

Top comments (0)