Запуск валидатора используя Azure
Запуск на Azure
Данное руководство предполагает, что у вас уже есть настроенная учетная запись Azure.
При необходимости выполните предварительно следующие установки:
Terraform 1.1.7: https://www.terraform.io/downloads.html
Kubernetes CLI: https://kubernetes.io/docs/tasks/tools/
Создайте рабочий каталог для вашей конфигурации.
Выберите имя рабочей области, например,
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чтобы настроить доступ для кластера k8skubectl 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 для AptosFrameworkwaypoint.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
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