节点工具
本指南重点介绍 Sui CLI 的 validator
命令。
此工具目前仅支持待处理的验证器和活跃的验证器。
准备工作
确保你已完成所有先决条件。
构建
sui
二进制文件,你需要用于创世典礼。此步骤可以在任何你喜欢的机器上完成。它不必在运行验证器的机器上执行。克隆 git 存储库:
git clone git@github.com:MystenLabs/sui.git && cd sui
检出要用于测试网的提交:
git checkout testnet
构建 sui 二进制文件:
cargo build --bin sui
记住你的二进制文件的路径:
export SUI_BINARY="$(pwd)/target/debug/sui"
运行以下命令设置你的 Sui 帐户和 CLI 环境。
如果这是第一次运行此程序,它将要求你提供 Sui Fullnode Server URL 和有意义的环境别名。它还将在
sui.keystore
中生成一个随机的密钥对和一个配置文件client.yaml
。如果你已经拥有验证器帐户密钥,请将其替换。如果你已经设置好了,请确保 a.
client.yaml
中的rpc
是正确的。 b.client.yaml
中的active_address
是正确的。 b.sui.keystore
包含你的帐户密钥对。如果此时找不到
client.yaml
或sui.keystore
的位置,或者有其他问题,请阅读Sui 客户端 CLI 教程。$ sui client
4. 为了测试你已连接到网络并正确配置了配置,请运行以下命令显示你的验证器信息。
``` bash
$ sui validator display-metadata
使用 Sui CLI
打印帮助信息
$ sui validator --help
显示验证器元数据
$ sui validator display-metadata
或
$ sui validator display-metadata <validator-address>
以打印其他验证器的信息。
更新验证器元数据
运行以下命令以查看如何更新验证器元数据。仔细阅读关于更改何时生效的描述。
$ sui validator update-metadata --help
你可以更新以下链上元数据:
- 名称
- 描述
- 图像 URL
- 项目 URL
- 网络地址
- P2P 地址
- 主地址
- 工作地址
- 协议公钥
- 网络公钥
- 工作公钥
值得注意的是,仅上述前4个元数据立即生效。
如果从第 5 到第 11 点更改任何元数据,它们将仅在下一个时期之后更改 - 对于这些元数据,你将希望在下一个时期后立即重新启动验证器程序,使用新的密钥文件和/或更新的 validator.yaml
配置。特别确保新地址没有被防火墙阻挡。
运行以下命令以查看如何更新每个元数据。
$ sui validator update-metadata --help
操作容量
操作容量允许验证器授权另一个帐户代表该验证器执行某些操作。详细了解此处的操作容量。
操作容量持有者(验证器本身或委托方)更新其 Gas 价格,并报告具有操作容量的验证器对等方。
更新 Gas 价格
要更新 Gas 价格,请运行
$ sui validator update-gas-price <gas-price>
如果帐户本身是验证器并持有操作容量。或
$ sui validator update-gas-price --operation-cap-id <operation-cap-id> <gas-price>
如果帐户是委托方。
报告验证器
要报告验证器对等方,请运行
$ sui validator report-validator <reportee-address>
如果打算撤消现有的报告,请添加 --undo-report false
。
类似地,如果帐户是委托方,请在命令中添加 --operation-cap-id <operation-cap-id>
选项。
如果帐户本身是验证器并持有操作容量。或
$ sui validator update-gas-price --operation-cap-id <operation-cap-id> <gas-price>
如果帐户是委托方。
成为验证器 / 加入委员会
要成为验证器候选人,首先运行
$ sui validator make-validator-info <name> <description> <image-url> <project-url> <host-name> <gas_price>
这将生成一个 validator.info
文件和密钥对文件。此命令的输出包括:
- 四个密钥对文件(更多信息)。 ==使用最小可见性设置它们的权限(例如 chmod 600)并安全地存储它们==。在运行以下验证器节点时,它们是必需的,如下面所述。
a. 如果你仔细遵循本指南,此密钥对实际上是从你的
sui.keystore
文件复制的。 - 包含验证器信息的
validator.info
文件。仔细检查所有信息是否正确。
然后运行
$ sui validator become-candidate {path-to}validator.info
以提交一个链上交易成为验证器候选人。参数是先前步骤中生成的 validator.info 文件的文件路径。确保交易成功(在输出中打印)。
在此时,你是验证器候选人,可以开始接受自我质押和委托质押。
如果你还没有,请现在启动一个全节点以赶上网络。当你正式加入委员会但未完全更新时,你无法对网络进行有意义的贡献,并且可能会受到对等体报告的影响,因此面临你和你的委托人质押奖励降低的风险。
一旦你收集到足够的质押金额,请运行
$ sui validator join-committee
以成为待处理的验证器。待处理的验证器将从下一个时期开始变为活跃并加入委员会。
离开委员会
要离开委员会,请运行
$ sui validator leave-committee
然后你将从下一个时期开始从委员会中删除。
生成用于创建 PoP 的有效载荷
序列化用于生成拥有权证明的有效载荷。这允许签名者将有效载荷脱机传递给一个具有权威协议 BLS 密钥对的签名者。
$ sui validator serialize-payload-pop --account-address $ACCOUNT_ADDRESS --protocol-public-key $BLS_PUBKEY
Serialized payload: $PAYLOAD_TO_SIGN