Запуск валидатора используя GCP
Создайте рабочий каталог для вашей конфигурации.
Выберите имя рабочей области, например,
testnet
. Примечание: это определит имя рабочей области Terraform, которое, в свою очередь, будет использоваться для формирования имен ресурсов.
export WORKSPACE=testnet
Создайте каталог для рабочей области
mkdir -p ~/$WORKSPACE
2. Создайте сегмент хранилища для хранения состояния Terraform в Google Cloud Storage. Используйте GCP UI или команду Google Cloud Storage, чтобы создать корзину. Имя корзины должно быть уникальным. См. документацию Google Cloud Storage здесь: https://cloud.google.com/storage/docs/creating-buckets#prereq-cli
gsutil mb gs://BUCKET_NAME
# for example
gsutil mb gs://<project-name>-aptos-terraform-dev
3. Создайте в вашем рабочем каталоге файл Terraform под названием main.tf
:
cd ~/$WORKSPACE
touch main.tf
4. Измените файл main.tf
для настройки Terraform, создайте полную ноду из модуля Terraform. Пример заполнения для main.tf
:
terraform {
required_version = "~> 1.1.0"
backend "gcs" {
bucket = "BUCKET_NAME" # bucket name created in step 2
prefix = "state/aptos-node"
}
}
module "aptos-node" {
# download Terraform module from aptos-labs/aptos-core repo
source = "github.com/aptos-labs/aptos-core.git//terraform/aptos-node/gcp?ref=testnet"
region = "us-central1" # Specify the region
zone = "c" # Specify the zone suffix
project = "<GCP Project ID>" # Specify your GCP project ID
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, no space, e.g. aptosbot>"
}
Полные параметры настройки см. в файле переменных здесь и в 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
Это может занять некоторое время (10–20 минут), Terraform создаст все ресурсы в вашей облачной учетной записи.
8. После завершения применения Terraform вы можете проверить, созданы ли эти ресурсы:
gcloud container clusters get-credentials aptos-$WORKSPACE --zone <region/zone> --project <project>
, чтобы настроить доступ для кластера 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].ip}')"
export FULLNODE_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-fullnode-lb --output jsonpath='{.status.loadBalancer.ingress[0].ip}')"
10. Сгенерируйте пары ключей (ключ владельца ноды, консенсус-ключ и сетевой ключ) в вашем рабочем каталоге.
cd $WORKSPACE
aptos genesis generate-keys --output-dir .
Таким образом, будут созданы три файла 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: 35.232.235.205
port: 6180
full_node_host:
host: 34.135.169.144
port: 6182
stake_amount: 1
12. Создайте файл макета YAML, который определяет узел в validatorSet. Для тестового режима мы можем создать генезис блоб, содержащий только одну ноду. Примечание: этот шаг необходим только для запуска ноды в тестовом режиме, для дальнейшего использования он будет генерироваться Aptos Labs.
vi layout.yaml
Добавьте корневой ключ, имя пользователя ноды и chain_id в файлеlayout.yaml
, например:
---
root_key: "0x5243ca72b0766d9e9cbf2debf6153443b01a1e0e6d086c7ea206eaf6f8043956"
users:
- <validator_name from step 4>
chain_id: 23
13. Загрузите байт-код AptosFramework Move в папку с именемframework
. Примечание: этот шаг необходим только для запуска ноды в тестовом режиме, для дальнейшего использования он будет генерироваться Aptos Labs.
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 Labs.
aptos genesis generate-genesis
--local-repository-dir ~/$WORKSPACE
--output-dir ~/$WORKSPACE
Это создаст в вашем рабочем каталоге два файлаgenesis.blob
and waypoint.txt
.
15. Итак, напомним, что в вашем рабочем каталоге должен быть список из следующих файлов:
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
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 для регистрации.
Last updated