跳到主要内容

验证器创建指南

本指南概述了在 BOT Chain 上创建新验证器的过程。 BOT 质押 dApp 是用于在 BOT Chain 上创建和管理验证器的官方工具。

术语

  • 算子地址:BOT上创建和修改验证人信息的地址。连接到质押 dApp 时应使用此地址。对应账户应有超过2001个BOT用于创建验证器和支付交易费用。
  • 共识地址:验证者节点的唯一地址。它用于挖掘新块时的共识引擎。它应该与运营商的地址不同。如果您在信标链上创建了现有的验证器,则旧的共识地址无法重复使用,您应该创建一个新的。
  • 投票地址:用于快速最终投票的地址。如果您在信标链上创建了现有的验证器,则旧的投票地址无法重复使用,您应该创建一个新的。
  • BLS 证明:验证投票地址所有权的 BLS 签名。
  • 身份:用于将新验证器与信标链中的现有验证器相关联。当委托人迁移他们的权益时,它非常有用 - 他们可以知道有一个新的验证器由同一验证器操作员运行。除非您要迁移旧的验证器,否则这是可选的。

步骤

1. 连接到 dApp

请使用您的运营商地址连接到质押 dApp。 MetaMask 和 WalletConnect 选项可用于该步骤。在继续下一步之前,请确保该帐户的余额超过 2001 BOT。

2. 填写表格

导航到 dApp 并选择页面右中部的“成为验证者”按钮以启动创建过程。

创建验证器需要以下信息。

基本信息

验证者创建表单中的基本信息填写界面

您需要在创建验证器页面上提供以下详细信息:

  • 验证器名称:选择由 3-9 个字母数字字符组成的名称,不包括特殊字符。
  • 网站:提供一个网站 URL,其中包含有关您的验证器的其他信息。
  • 描述:验证器的简短描述。
地址

验证者创建表单中的地址配置界面

需要以下地址:

  • 共识地址:验证者节点的唯一地址。
  • 投票地址:用于快速最终投票的地址。
  • BLS 证明:验证投票地址所有权的 BLS 签名。
  • 身份:用于将新验证器与信标链中的现有验证器相关联。除非您要迁移旧的验证器,否则这是可选的。
生成共识地址

注意:请确保根据您的计算机平台下载正确的二进制文件,例如,如果您使用的是 MacOS,则应下载 geth_mac 文件。为了简单起见,下面我们将二进制文件称为 geth。

创建新账户进行挖矿,请使用以下命令并为该账户设置密码。

geth account new --datadir ${DATA_DIR}
  • DATA_DIR:您要存储密钥存储文件的目录。

该命令将返回公共地址(即共识地址)和您的私钥路径。请备份密钥文件!

共识地址示例为 0x4b3FFeDb3470D441448BF18310cAd868Cf0F44B5。

如果您已经有挖矿账号,可以使用助记词恢复账号。

geth account import --datadir ${DATA_DIR}

如果您在信标链上创建了验证器,请使用不同的验证器作为共识地址。

生成投票地址和 BLS 证明

要创建新的 BLS 帐户,请使用以下命令。

geth bls account new --datadir ${DATA_DIR}
  • DATA_DIR:您要存储密钥存储文件的目录。

如果您已有投票密钥,请使用以下命令创建 bls 钱包并使用密钥文件来恢复它。

geth bls account import ${KEY_FILE} --datadir ${DATA_DIR}
  • DATA_DIR:用于恢复BLS帐户的备份文件。

然后您可以通过运行以下命令来获取您的投票地址。

geth bls account list --datadir ${DATA_DIR}

示例地址为 b5fe571aa1b39e33c2735a184885f737a59ba689177f297cba67da94bea5c23dc71fd4deefe2c0d2d21851eb11081f69。

然后你可以通过运行以下命令来获取你的 bls 证明。

geth bls account generate-proof --chain-id ${BOT_CHAIN_ID} ${OPEATOR_ADDRESS} ${VOTE_ADDRESS}
  • BOTCHAINID:BOT 主网为 677,BOT 测试网为 968。
  • OPEATOR_ADDRESS:您的帐户地址,该地址将被识别为新验证器的操作者。
  • VOTE_ADDRESS:上一步创建的投票地址。

一个示例证明是0xaf762123d031984f5a7ae5d46b98208ca31293919570f51ae2f0a03069c5e8d6d47b775faba94d88dbbe591c51c537d 718a743b9069e63b698ba1ae15d9f6bf7018684b0a860a46c812716117a59c364e841596c3f0a484ae40a1178130b76a5

创建身份

注意:确保您根据机器的平台下载正确的二进制文件,例如,如果您使用 MacOS,则应下载 macos_binary.zip 文件,解压后您将找到 botcli(用于 mainet)和 tbotcli(用于 testnet)。为了简单起见,下面我们将二进制文件称为 botcli。

设置帐户

如果您有助记词,可以通过以下命令导入您的账户:

${workspace}/bin/botcli keys add <your-account-name> --recover --home ${HOME}/.botcli
Enter a passphrase for your key:
Repeat the passphrase:

输入您的恢复助记词: 您将被要求为此帐户设置密码并输入您的助记词。之后,您将获得您的帐户信息。

  • ${workspace}/bin/botcli:botcli 二进制可执行文件的路径。对于测试网,您应该使用 tbotcli。
  • ${HOME}:存储帐户信息的文件夹。

或者,如果您有分类帐,您可以通过运行以下命令导入您的帐户:

${workspace}/bin/botcli keys add <your-account-name> --ledger --index ${index} --home ${HOME}/.botcli
  • ${workspace}/bin/botcli:botcli 二进制可执行文件的路径。对于测试网,您应该使用 tbotcli。
  • ${HOME}:存储帐户信息的文件夹。
  • ${index}:您要导入的账本账户的索引。
获取身份

账号导入后,您可以通过以下命令获取您的身份:

对于本地密钥:

${workspace}/bin/botcli \ validator-ownership \ sign-validator-ownership \ --bot-operator-address ${NEW_VALIDATOR_OPERATOR_ADDR_ON_BOT} \  --from ${ACCOUNT_NAME} \  --chain-id ${BOT_CHAIN_ID} \

对于账本密钥:

${workspace}/bin/botcli \ validator-ownership \ sign-validator-ownership \ --bot-operator-address ${NEW_VALIDATOR_OPERATOR_ADDR_ON_BOT} \ --from ${BOT_OPERATOR_NAME} \ --chain-id ${CHAIN_ID} \ --ledger
  • ${workspace}/bin/botcli:botcli 二进制可执行文件的路径。对于测试网,您应该使用 tbotcli。
  • --to ${NEWVALIDATOROPERATORADDRON_BOT}:指定新验证器操作符地址将映射到的BOT地址。
  • --from ${ACCOUNT_NAME}:指定执行签名的帐户名。该帐户应该是在信标链上创建的验证器的操作者。

你将得到如下输出:

TX JSON: {"type":"auth/StdTx","value":{"msg":[{"type":"migrate/ValidatorOwnerShip","value":{"bot_operator_address":"RXN7r5XZlaljqzp8msZvx6Y6124="}}],"signatures":[{"pub_key":{"type":"tendermint/PubKeySecp256k1","value":"Ahr+LlBMLgiUFkP75kIuJW1YHrsTy39GeOdV+IaTREDN"},"signature":"AL5mj52s0+tcdoEb6c6PAmqBixuv3XEmrLW3Y1kvUeYgG3RqVvWU/dIVcfxiHHwLGXlcn0X1v00jFrpLIsxtqA==","account_number":"0","sequence":"0"}],"memo":"","source":"0","data":null}}
Sign Message: {"account_number":"0","chain_id":"Bot-GGG-Ganges","data":null,"memo":"","msgs":[{"bot_operator_address":"0x45737baf95d995a963ab3a7c9ac66fc7a63ad76e"}],"sequence":"0","source":"0"}
Sign Message Hash: 0x8f7179e7969e497b5f3c006535e55c2fa5bea5d118a8008eddce3fccd1675673
Signature: 0x00be668f9dacd3eb5c76811be9ce8f026a818b1bafdd7126acb5b763592f51e6201b746a56f594fdd21571fc621c7c0b19795c9f45f5bf4d2316ba4b22cc6da8
PubKey: 0x021afe2e504c2e08941643fbe6422e256d581ebb13cb7f4678e755f886934440cd

签名是您与在 BOT Chain 上创建的旧验证器关联的身份。

佣金

验证者创建表单中的佣金费率设置界面

  • Rate:验证人的佣金率。
  • 最大佣金率:验证者可以设置的最大佣金率。
  • 最大变化率:验证者可以为每个时期(1 天)设置的最大变化率。
自我委托

验证者创建表单中的自我委托设置界面

  • 自委托金额:创建验证器时委托的金额。输入的最小数字是 2001 - 最小自委托金额是 2000 BOT 和额外的 1 BOT 用于锁定死地址。

3. 提交表格

填写完所有必填信息后,单击“提交”按钮提交交易。

注意:完成这些步骤后,不保证您的节点成为活跃验证者。选择基于反映总 BOT 权益的排名,仅选择前 N 个节点作为活跃验证者。数量 N 由 StakeHubContract 中的“maxElectedValidators”参数确定(0x0000000000000000000000000000000000002002)。