Подключение к сети Aptos

В этом документе описано, как подключить ваш работающую ноду валидатора и публичную полную ноду к сети Aptos. Следуйте этим инструкциям, только если ваш валидатор соответствует требованию минимального стейкинга. (1M токен APT)

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

ПРИМЕРЫ С ИСПОЛЬЗОВАНИЕМ TESTNET Примеры команд CLI, используемые в этом разделе, используют testnet. Вы можете использовать ту же команду для mainnet, передав URL mainnet в параметре --rest-url.

  • Инициализируйте CLI с помощью приватного ключа вашего кошелька, который вы можете получить из Настройки -> Учетные данные

aptos init --profile testnet-owner \
  --rest-url https://testnet.aptoslabs.com
  • Инициализация стэйкинг-пула с помощью CLI

aptos stake initialize-stake-owner \
  --initial-stake-amount 100000000000000 \
  --operator-address <operator-address> \
  --voter-address <voter-address> \
  --profile testnet-owner
  • Не забудьте перевести несколько coin на учетную запись оператора для оплаты газа, это можно сделать с помощью Petra, или CLI

aptos account create --account <operator-account> --profile testnet-owner
aptos account transfer \
--account <operator-account> \
--amount 5000 \
--profile testnet-owner

Загрузка ноды валидатора

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

aptos node get-stake-pool --owner-address <owner_address> --urlИспользование исходного кода

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

  • Остановите вашу ноду и удалите каталог данных. Убедитесь, что вы удалили файл secure-data.json. Щелкните здесь, чтобы посмотреть расположение файла secure-data.json

  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.

  • Обновите account_address в validator-identity.yaml и validator-fullnode-identity.yaml файлы на адрес вашего пула. Больше ничего не меняйте. Оставьте ключи такими, какие они есть.

  • Внесите последние изменения в ветку mainnet. Это должен быть коммит 843b204dce971d98449b82624f4f684c7a18b991

  • [Необязательно] Вы можете использовать быструю синхронизацию для загрузки ноды, если сеть работает в течение длительного времени (например, testnet). Добавьте приведенную ниже конфигурацию в файлы validator.yaml и fullnode.yaml. Также смотрите Быстрая синхронизация.

state_sync:
 state_sync_driver:
     bootstrapping_mode: DownloadLatestStates
     continuous_syncing_mode: ApplyTransactionOutputs
  • Закройте порт метрики 9101 и порт REST API 80 на вашем валидаторе (вы можете оставить его открытым для публичной полной ноды).

  • Перезапустите ноду валидатора и полную ноду валидатора.

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

  • Остановите ноду и удалите тома данных, docker compose down --volumes. Нажмите здесь, чтобы увидеть расположение файла secure-data.json.

  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.

  • Обновите account_address в validator-identity.yaml и validator-fullnode-identity.yaml файлы на адрес вашего пула.

  • Обновите образ Docker, чтобы использовать тег testnet_843b204dce971d98449b82624f4f684c7a18b991.

  • [Необязательно] Вы можете использовать быструю синхронизацию для загрузки ноды, если сеть работает в течение длительного времени (например, testnet). Добавьте приведенную ниже конфигурацию в файлы validator.yaml и fullnode.yaml. Также смотрите раздел Быстрая синхронизация.

    state_sync:
     state_sync_driver:
         bootstrapping_mode: DownloadLatestStates
         continuous_syncing_mode: ApplyTransactionOutputs
  • Закройте порт метрики 9101 и порт REST API 80 на вашем валидаторе (удалите их из файла Docker compose). Вы можете оставить его открытым для публичной полной ноды.

  • Перезапустите ноду: docker compose up.

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

  • Увеличьте номер era в конфигурации Terraform. Когда эта конфигурация будет применена, она сотрет данные.

  • Обновите chain_id до 2.

  • Обновите образ Docker, чтобы использовать тег testnet_843b204dce971d98449b82624f4f684c7a18b991.

  • Закройте порт метрики и порт REST API для валидатора. [Необязательно] Вы можете использовать быструю синхронизацию для загрузки ноды, если сеть работает в течение длительного времени (например, testnet). добавив следующие значения Helm в файл main.tf:

module "aptos-node" {
    ...

    helm_values = {
        validator = {
          config = {
            # use fast sync to start the node
            state_sync = {
              state_sync_driver = {
                bootstrapping_mode = "DownloadLatestStates"
              }
            }
          }
        }
        service = {
          validator = {
            enableRestApi = false
            enableMetricsPort = false
          }
        }
    }
}
  • Вытащите последнюю версию модуля terraform: terraform get -update, а затем примените Terraform: terraform apply.

  • Скачайте файл genesis.blob и waypoint.txt, опубликованные командой Aptos Labs.

  • Обновите account_address в файлах validator-identity.yaml и validator-fullnode-identity.yaml на адрес вашего пула. Больше ничего не меняйте. Оставьте ключи такими, какие они есть.

  • Создайте секреты заново. Убедитесь, что название секрета соответствует номеру вашей era, например, если у вас era = 3, то вам следует заменить название секрета:

${WORKSPACE}-aptos-node-0-genesis-e3export WORKSPACE=<your workspace name>
export WORKSPACE=
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Присоединение к пулу валидаторов

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

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

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

aptos init --profile testnet-operator \
--private-key <operator_account_private_key> \
--rest-url https://testnet.aptoslabs.com \
--skip-faucet

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

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

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

aptos account list --profile testnet-operator

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

"coin": {
    "value": "5000"
  }

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

aptos node update-validator-network-addresses  \
  --pool-address <pool-address> \
  --operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
  --profile testnet-operator

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

aptos node update-consensus-key  \
  --pool-address <pool-address> \
  --operator-config-file ~/$WORKSPACE/$USERNAME/operator.yaml \
  --profile testnet-operator

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

aptos node join-validator-set \
  --pool-address <pool-address> \
  --profile testnet-operator \
  --max-gas 10000 

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

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

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

aptos node show-validator-set --profile testnet-operator | jq -r '.Result.pending_active' | grep <pool_address>

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

aptos node show-validator-set --profile testnet-operator | jq -r '.Result.active_validators' | grep <pool_address>

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

ОПРЕДЕЛЕНИЕ РАБОТОСПОСОБНОСТИ НОДЫ См. определение работоспособности ноды здесь.

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

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

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

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

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

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

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

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

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

Вы должны ожидать, что версия "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"

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

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

0x1::stake::StakePool

"active": {
  "value": "100009129447462"
}

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

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

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

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

aptos node leave-validator-set --profile testnet-operator --pool-address <owner-address>

Last updated