在 Azure 上运行
该指南假定您已经设置了 Azure 帐户。
如果需要提前安装:
Aptos CLI 0.3.1:https://aptos.dev/cli-tools/aptos-cli-tool/install-aptos-cli
Terraform 1.2.4:https://www.terraform.io/downloads.html
Kubernetes CLI:https://kubernetes.io/docs/tasks/tools/
为您的配置创建一个工作目录。
选择一个工作区名称,例如
测试网
。注意:这定义了 Terraform 工作空间名称,该名称又用于形成资源名称。export WORKSPACE=testnet
为工作区创建一个目录。
mkdir -p ~/$WORKSPACE
为您的节点选择一个用户名称,例如:
alice
.export USERNAME=alice
创建一个 blob 存储容器,用于在 Azure 上存储 Terraform 状态,您可以在 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
在您的工作目录中创建名为
main.tf
的 Terraform 文件:cd ~/$WORKSPACE vi main.tf
修改
main.tf
文件以配置 Terraform,并从 Terraform 模块创建全节点。main.tf
的示例内容:terraform { required_version = "~> 1.2.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=testnet" region = <azure region> # Specify the region era = 1 # bump era number to wipe the chain chain_id = 43 image_tag = "testnet" # Specify the docker image tag to use validator_name = "<Name of Your Validator>" }
在
main.tf
文件的同一目录中初始化 Terraform。terraform init
这将为您下载所有
.terraform
相关项,放置于您当前的工作目录的.terraform
文件夹中。创建一个新的 Terraform 工作区来隔离您的工作环境:
terraform workspace new $WORKSPACE # This command will list all workspaces terraform workspace list
申请配置。
terraform apply
这可能需要花费一些时间来完成(大约20分钟), Terraform 将会在您的云账户上创建所有资源。
一旦 terraform 申请完成,您可以检查是否这些资源文件已经被创建:
az aks get-credentials --resource-group aptos-$WORKSPACE --name aptos-$WORKSPACE
为您的 k8s 集群配置访问权限。kubectl get pods
这应该有 haproxy、验证者和全节点。当验证器和全节点 Pod 处于待处理状态时候(需要在后续步骤中采取进一步措施)kubectl get svc
这个需要有validator-lb
和fullnode-lb
, 通过一个外部- IP您可以稍后共享以进行连接。
获得您的节点 IP 信息:
export VALIDATOR_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-0-validator-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')" export FULLNODE_ADDRESS="$(kubectl get svc ${WORKSPACE}-aptos-node-0-fullnode-lb --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')"
在您的工作目录中生成密钥对(节点所有者、投票者、操作员密钥、共识密钥和网络密钥)。
aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys
这将创建4个关键文件在
~/$WORKSPACE/keys
目录下:public-keys.yaml
private-keys.yaml
validator-identity.yaml
,和validator-full-node-identity.yaml
.❗ 需要注意:
将您的私钥文件备份到安全的地方。这些关键文件对于您建立节点的所有权很重要。 永远不要与任何人共享私钥。
配置验证者信息。这是您稍后在 Aptos 社区网站上注册所需的所有信息。
aptos genesis set-validator-configuration \\ --local-repository-dir ~/$WORKSPACE \\ --username $USERNAME \\ --owner-public-identity-file ~/$WORKSPACE/keys/public-keys.yaml \\ --validator-host $VALIDATOR_ADDRESS:6180 \\ --full-node-host $FULLNODE_ADDRESS:6182 \\ --stake-amount 100000000000000
这里需要创建2个 YAML 文件在
~/$WORKSPACE/$USERNAME
目录下:owner.yaml
和operator.yaml
。创建一个布局模板文件,该文件定义了 Aptos 中的节点
validatorSet
.aptos genesis generate-layout-template --output-file ~/$WORKSPACE/layout.yaml
编辑
layout.yaml
, 添加root_key
, 验证者节点用户名和chain_id
:root_key: "D04470F43AB6AEAA4EB616B72128881EEF77346F2075FFE68E14BA7DEBD8095E" users: ["<username you specified from previous step>"] chain_id: 43 allow_new_validators: false epoch_duration_secs: 7200 is_test: true min_stake: 100000000000000 min_voting_threshold: 100000000000000 max_stake: 100000000000000000 recurring_lockup_duration_secs: 86400 required_proposer_stake: 100000000000000 rewards_apy_percentage: 10 voting_duration_secs: 43200 voting_power_increase_limit: 20
请确保您使用与示例中所示相同的根公钥和相同的链 ID,这些配置将在注册期间用于验证您的节点。
下载 Aptos 框架 Move 页面在
~/$WORKSPACE
目录下展示为framework.mrb
wget <https://github.com/aptos-labs/aptos-core/releases/download/aptos-framework-v0.3.0/framework.mrb> -P ~/$WORKSPACE
编译编译 genesis blob 和路标。
aptos genesis generate-genesis --local-repository-dir ~/$WORKSPACE --output-dir ~/$WORKSPACE
这将在您的工作目录中创建两个文件:
genesis.blob
andwaypoint.txt
.总而言之,在您的工作目录中,您应该有一个文件列表:
main.tf
: 用于安装aptos-node
模块的 Terraform 文件(来自步骤 3 和 4)。keys
文件夹,包括:public-keys.yaml
: 所有者账户的公钥,共识和网络 (来自步骤10)。private-keys.yaml
:所有者账户的私钥,共识和网络(来自步骤10)。validator-identity.yaml
: 设置验证者节点身份的私钥(来自步骤10)。validator-full-node-identity.yaml
: 设置验证者全节点身份的私钥(来自步骤10)。
username
文件夹,包括:owner.yaml
: 定义所有者、操作员和投票人映射。它们在测试模式下都是相同的帐户(来自步骤11)。operator.yaml
: 节点信息将用于验证器和全节点(来自步骤11)。
layout.yaml
: 布局文件包含根密钥、验证器用户和链ID的键值(来自步骤12)。framework.mrb
: Aptos Framework Move 安装包(来自步骤13)。waypoint.txt
:genesis事务的航路点(来自步骤14)。genesis.blob
genesis二进制文件,包含关于框架、验证器集等的所有信息(来自步骤14)。
插入
genesis.blob
,waypoint.txt
和身份文件作为 secret 到 k8s 集群中。kubectl create secret generic ${WORKSPACE}-aptos-node-0-genesis-e1 \\ --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
❗ 注意
-e1
后缀表示时代编号。如果您更改了时代编号,请确保在创建 secret 时将它匹配。检查所有 pods 正在运行。
kubectl get pods NAME READY STATUS RESTARTS AGE node1-aptos-node-0-fullnode-e9-0 1/1 Running 0 4h31m node1-aptos-node-0-haproxy-7cc4c5f74c-l4l6n 1/1 Running 0 4h40m node1-aptos-node-0-validator-0 1/1 Running 0 4h30m
现在您已经成功地完成了在测试模式下的节点设置。您可以跳转到 Aptos 社区平台来进行注册。
Last updated