DEV Community

EgorMajj
EgorMajj

Posted on

2 1

Подключение к 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

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay