Sui验证者节点配置
Sui网络上的验证者运行特殊节点,并且除完整节点运算符的任务和责任外,还有其他任务和责任。
运行Sui验证者所需的条件
要运行Sui验证者,你必须设置和配置一个Sui验证者节点。在运行节点之后,你必须在Sui网络的验证者集中拥有至少3000万SUI的质押池才能加入。
要了解如何设置和配置Sui验证者节点,请参阅GitHub上的Sui for Node Operators。该指南包含配置验证者节点所需的所有信息。它还提供了加入验证者集后必须执行的任务的指导。
你必须执行的具体步骤包括:
- 安装和配置Sui
- 配置端口和协议设置
- 密钥管理
- 存储配置
- 软件更新
- 链上命令
- 更新燃气价格调查
- 报告其他验证者
验证者质押池要求
验证者需满足一定的最低质押要求才能加入并维持在活跃的验证者名单中。
具体要求如下:
- 验证者候选人必须积累至少 3000 万 SUI 的质押才能申请加入验证者名单。
- 活跃验证者的质押若降到 2000 万 SUI 以下,将有七个周期(Sui 的周期为 24 小时)的宽限期来增加质押,否则会被移出验证者名单。
- 如果活跃验证者的质押降至 1500 万 SUI 以下,他们将在当前周期结束时被移除出验证者名单。
运行验证者节点的硬件要求
运行Sui完整节点的建议的最低硬件规格:
- CPU:24个物理核心(或48个虚拟核心)
- 内存:128 GB
- 存储:4 TB NVME
- 网络:1 Gbps
验证者共识和投票权
Sui上的总投票权始终为10,000,不论抵押金额如何。因此,法定人数门槛为6,667。用户对验证者的抵押金额没有限制。每个验证者的共识投票权与其抵押池中的SUI数量成比例,但有一个例外:个别验证者的投票权被限制在1,000(总量的10%)。如果验证者的累计抵押超过总抵押的10%,则验证者的投票权保持固定在10%,其余的投票权分配给验证者集的其余部分。
用户质押和提现
当用户质押SUI代币时,这些SUI对象将被包装到StakedSUI对象中。确定每个用户对质押池相对所有权的计算是通过StakedSUI对象的时间戳(确定存款发生的时刻)和存款时期和提款时期之间的汇率变化来完成的。每个质押池的数据结构都包含该池的汇率的时间序列。这些汇率可以用于确定该池的任何质押者的提款。
提款立即在以前时期的汇率下进行处理。提款无需等待当前时期关闭。提款包括用户存入的原始SUI和截至前一个时期边界累积的所有质押奖励。质押者在他们提款的时期内不会获得其质押收益。由于在当前时期关闭之前无法知道在当前时期内将累积多少质押奖励,因此这些无法包含在提款中。因此,任何用户都可以立即提取他们的质押,并获得:
E'时提取的SUI = (E时存入的SUI)*(E'-1时的汇率 / E时的汇率)
查找汇率
每个时期更改都会发出0x2::validator_set::ValidatorEpochInfo
事件,每个验证者都会附带汇率信息。你可以使用Events API查询事件。
质押奖励
在给定的验证者质押池中,所有质押者通过池的汇率升值平均获得相同比例的奖励。此外,由于验证者通过管理的质押而获得佣金,因此每个时期结束时,验证者会按其质押池赚取的佣金比例额外获得StakedSUI
对象。
质押奖励由当前时期收集的交易燃气费和在时期结束时释放的质押奖励资助。
质押奖励 = 质押奖励 + 燃气费
质押奖励旨在在网络的早期阶段资助网络,并由SUI代币的10%分配资金。在此分配用尽之后,整个质押奖励将由通过常规网络运算收集的燃气费组成。
质押奖励由燃气费和质押奖励组成。每个时期分配的总金额如下确定:
- 质押奖励:每个时期分配的金额在时期开始之前根据预定义的时间表确定。
- 燃气费:每个时期的金额取决于在整个时期内收集的总燃气费。每个Sui交易支付燃气费,具体取决于两个变量,即执行的燃气单元数量和燃气价格: GasFee = GasPrice GasUnits*
收集的燃气费总额对应于在时期内处理的所有交易中的燃气费总和。在常规市场条件下,绝大多数交易的GasPrice
应与ReferenceGasPrice
相等。
用户质押和奖励
质押请求在提交后立即进入质押池中的挂起状态。Sui Wallet反映用户帐户的任何挂起的质押请求。但是,挂起的质押请求直到其提交的时期结束时才生效。
撤回(取消质押)请求在接收到时立即进行处理。质押者获得最初存入的SUI以及截至前一个时期边界的所有累积质押奖励,换句话说,他们不包括当前时期的质押奖励。
用户无法撤回其活动质押的一部分。他们必须同时撤回所有已质押的SUI。然而,用户可以通过将其SUI分成多个硬币并将其分成多个StakedSui
对象来进行质押。然后,他们可以从验证者中撤回仅部分StakedSUI
对象。
参考燃气价格
Sui被设计为使最终用户在常规网络运作期间能够期望燃气价格保持稳定和可预测。这通过在每个时期开始时由验证者设置网络的参考燃气价格来实现。
在操作上,通过燃气价格调查实现如下:
- 在每个时期E期间,每个验证者都会提交他们认为下一个时期E+1的最佳参考燃气价格应该是什么。
- 在时期结束时,当Sui从时期E过渡到时期E+1时,网络会观察验证者集中的燃气价格报价,并将2/3的加权百分位数作为该时期的参考燃气价格。因此,参考燃气价格在每个时期内保持恒定,并且仅在时期更改时更新。
例如,假设有七个投票者拥有相等的股权,他们提交的价格报价为{15, 1, 4, 2, 8, 3, 23}
。协议将参考燃气价格设置为8。
实际上,提交燃气价格报价进行燃气价格调查的过程是一个简单的过程。每个验证者都拥有一个包含其对参考燃气价格的报价的对象。要更改其响应,它们必须更新该对象中的值。
例如,要将下一个时期的价格报价设置为42,请运行:
sui client call --package <PACKAGE-ID> --module sui_system --function request_set_gas_price --args 0x5 \"42\" --gas-budget <GAS-AMOUNT>
重要的是,燃气对象的值在时期之间保持不变,因此不更新并提交新的报价的验证者使用来自上一个时期的相同报价。因此,寻求优化其操作的验证者应该根据网络运营和市场条件的变化每个时期更新其报价。
验证者惩罚和计分规则
Sui旨在鼓励和强制执行验证者集的社区监控。这是通过计票规则完成的,其中每个验证者都监视和评分每个其他验证者,以确保每个人都以网络的最佳利益高效运作。得分较低的验证者可能会因削减质押奖励而受到惩罚。
协议仅在时期边界计算全局计票规则得分,因此依赖于验证者积极监控并在检测到其他验证者行为变化时更改其个体得分。通常,计票规则的默认选项应始终是所有验证者的得分为1,并且只有在确定操作不良时才更改为零。实际上,计票规则由每个验证者拥有的一组对象组成,这些对象的默认分数为1,因此验证者通常会被动地仅在需要时更新与另一验证者的分数相对应的对象。
例如,要报告Sui地址为0x44840a79dd5cf1f5efeff1379f5eece04c72db13512a2e31e8750f5176285446
的验证者为不良或性能不佳,请运行:
sui client call --package <PACKAGE-ID> --module sui_system --function report_validator --args 0x5 0x44840a79dd5cf1f5efeff1379f5eece04c72db13512a2e31e8750f5176285446 --gas-budget <GAS-AMOUNT>
计票规则应通过社交平衡实现。验证者集应积极监控自己,如果一个验证者明显表现不佳,则其他验证者应该为该验证者打分为0并削减其奖励。社区成员可以启动跟踪验证者性能的公共仪表板,这可以用作对验证者操作的进一步信号。在一个时期中,可以接收到获得0计分的验证者数量没有限制。