使用 GCP
这是一份通过 Google Cloud Platform (GCP) 逐步部署 Aptos 验证器及其全节点(VFN)的指南.遵循此指南,你将会在不同的服务器上分别部署验证器和 VFN.
- 
为您的 Aptos 节点创建一个工作目录,并为您的节点选择一个用户名,例如: Terminal window export WORKSPACE=mainnetexport USERNAME=alicemkdir ~/$WORKSPACEcd ~/$WORKSPACE
- 
在 Google Cloud Storage 上创建一个存储桶,用于存储 Terraform 状态. 使用 GCP UI 或 Google Cloud Storage 命令创建存储桶: Terminal window gsutil mb gs://BUCKET_NAME# 以下是创建存储桶的示例gsutil mb gs://<project-name>-aptos-terraform-dev
- 
在您的工作目录中创建一个名为 main.tf的 Terraform 文件:Terminal window cd ~/$WORKSPACEvi main.tf
- 
修改 main.tf文件以配置 Terraform 并创建 Terraform 模块.请参阅以下示例:terraform {required_version = "~> 1.3.6"backend "gcs" {bucket = "BUCKET_NAME" # 上面创建的存储桶名称prefix = "state/aptos-node"}}module "aptos-node" {# 从 aptos-core 仓库下载 Terraform 模块。source = "github.com/aptos-labs/aptos-core.git//terraform/aptos-node/gcp"region = "us-central1" # 指定 GCP 区域zone = "c" # 指定区域后缀project = "<GCP Project ID>" # 指定您的 GCP 项目 IDera = 1 # 提高时代编号以清除链数据chain_id = 1 # 对于主网使用 1,或对于其他网络使用不同的值。image_tag = "mainnet" # 根据网络指定要使用的镜像标签validator_name = "<Name of your validator>" # 指定您的验证器名称}有关所有自定义选项,请参见: 
- 
在您创建了 main.tf文件的$WORKSPACE目录中初始化 Terraform.Terminal window terraform init这将把 Terraform 的所有依赖项下载到当前工作目录中的 .terraform文件夹中.
- 
创建一个新的 Terraform 工作区以隔离您的环境,并查看工作区列表. Terminal window terraform workspace new $WORKSPACE# 此命令将列出所有工作区terraform workspace list
- 
应用 Terraform 配置. Terminal window terraform apply这可能需要一段时间才能完成(例如,>20 分钟).Terraform 将在您的云账户上创建所有资源. 
- 
terraform apply完成后,您可以通过运行以下命令来检查资源是否已正确创建:- gcloud container clusters get-credentials aptos-$WORKSPACE --zone <region/zone> --project <project>:此命令将为您的 k8s 集群配置访问权限.
- kubectl get pods:此命令将输出集群中的所有 pod.您应该看到 haproxy,验证器和 VFN(由于后续步骤中的进一步操作,验证器和 VFN pod- pending).
- kubectl get svc:此命令将输出集群中的所有服务.您应该看到- validator-lb和- fullnode-lb,以及用于网络连接的外部 IP.
 
- 
接下来,我们需要将节点的 IP 信息注入到您的环境.您可以通过运行以下命令来执行此操作: Terminal window 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 CLI 来执行此操作: Terminal window aptos genesis generate-keys --output-dir ~/$WORKSPACE/keys这将在 ~/$WORKSPACE/keys目录下创建 4 个密钥文件:- public-keys.yaml:此文件包含您的验证器和 VFN 的所有公钥,以及您的账户地址.
- private-keys.yaml:此文件包含您的验证器和 VFN 的所有私钥.
- validator-identity.yaml:此文件包含验证器的公钥和私钥,以及您的账户地址.
- validator-full-node-identity.yaml:此文件包含 VFN 的公钥和私钥,以及您的账户地址.
 
- 
接下来,您需要设置验证器的配置.这包括设置验证器和 VFN 的主机名,这些可能是 IP 地址或 DNS 地址.您可以通过运行以下命令来完成此操作: Terminal window 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配置验证器将在 ~/$WORKSPACE/$USERNAME目录中创建两个 YAML 文件:owner.yaml和operator.yaml.这些(稍后)将有助于将您的节点连接到 Aptos 网络.
- 
按照 查找节点文件 页面上的说明下载以下文件. 您需要选择适当的网络(例如, mainnet,testnet,devnet)并下载以下文件:- genesis.blob
- waypoint.txt
 
- 
总之,您的工作目录( ~/$WORKSPACE)中应该有以下文件列表:- main.tf:安装- aptos-node模块的 Terraform 文件.
- keys文件夹包含:- public-keys.yaml:两个节点的公钥.
- private-keys.yaml:两个节点的私钥.
- validator-identity.yaml:验证器的密钥和账户信息.
- validator-full-node-identity.yaml:VFN 的密钥和账户信息.
 
- $username文件夹包含:- owner.yaml:所有者,运营者和投票者映射.
- operator.yaml:验证器和 VFN 运营者信息.
 
- waypoint.txt:您正在连接的网络上创世交易的路标文件.
- genesis.blob:您正在连接的网络的创世区块(fenesis blob).
 
- 
最后,通过运行以下命令,将 genesis.blob,waypoint.txt和身份文件作为密钥插入到 k8s 集群中:Terminal window 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
- 
现在,我们应该能够看到所有 pod 都在运行,包括验证器和 VFN.您可以通过执行以下命令来检查这一点: Terminal window kubectl get pods# 示例输出NAME READY STATUS RESTARTS AGEnode1-aptos-node-0-fullnode-e9-0 1/1 Running 0 4h31mnode1-aptos-node-0-haproxy-7cc4c5f74c-l4l6n 1/1 Running 0 4h40mnode1-aptos-node-0-validator-0 1/1 Running 0 4h30m
连接到 Aptos 网络
Section titled “连接到 Aptos 网络”您现在已经使用 GCP 完成了验证器和 VFN 的设置.请继续进行 连接节点 的操作.