Rocket Pool Redstone 更新

Rocket Pool 的下一个重大更新,名为 Redstone,已在 Ropsten 和 Holesky 测试网络上发布进行 beta 测试。 本页描述了 Redstone 带来的主要变化,包括对 Smartnode 堆栈和 Rocket Pool 协议的更新。

请仔细阅读本页,以了解 Rocket Pool 之前版本和 Redstone 之间的所有差异。

注意

有关如何为升级准备节点以及升级后该做什么的详细信息,请查看以下指南:

客户端变化和合并

Ropsten(很快还有 Holesky)已经成功完成了执行层和共识层的合并。 它不再使用工作量证明;相反,Ropsten 上的验证器现在负责在两条链上创建和提出区块。 虽然这带来了一些令人兴奋的财务利益(稍后将讨论),但它也带来了验证器操作方式的一些重要变化。

以下是作为合并一部分的客户端行为变化的简要摘要:

  • 您的执行客户端现在使用三个 API 端口:

    • 一个用于 HTTP 访问其 API(默认 8545
    • 一个用于 Websocket 访问其 API(默认 8546
    • 一个用于合并后共识客户端使用的新引擎 API默认 8551
  • 执行客户端现在需要共识客户端才能运行,共识客户端现在需要执行客户端才能运行。

    • 两者都不能再单独运行。
  • 一个执行客户端必须链接到一个且只有一个共识客户端(反之亦然)。

    • 您将无法将多个执行客户端链接到单个共识客户端,或将多个共识客户端链接到单个执行客户端。
    • 因此,Rocket Pool 节点操作员不再提供备用执行客户端
  • 需要完整执行客户端

    • 任何验证器都不能再使用远程提供商(如 Infura 和 Pocket),无论是 Rocket Pool 还是其他。

费用接收者和您的分配器

由于验证器现在负责创建区块,这意味着他们将接收附加到每笔交易的优先费用(也称为小费)。 这些费用以 ETH 支付,每次您的 minipool 验证器提出区块时,它们都会直接提供给您。 与信标链上锁定的 ETH 不同,您不必等待提款就可以访问您的优先费用! 它们只是作为区块提议过程的一部分奖励给您。

为了知道将费用发送到哪里,您的验证器客户端需要一个额外的参数,称为 费用接收者。 这是执行层(ETH1)上的地址,您的节点在区块提议期间获得的所有优先费用都将发送到该地址。

Rocket Pool 旨在公平分配这些奖励,就像它公平分配您的信标链奖励一样: 您的 minipool 验证器获得的任何优先费用的一半将归您所有(加上您所有 minipools 的平均佣金),另一半将归池质押者所有(减去您的平均佣金)。

为此,Smartnode 将自动将您的验证器客户端的 费用接收者 设置为一个特殊地址,称为您节点的费用分配器。 您的费用分配器是执行层上的唯一合约,特定于您的节点。 它将保留您随时间获得的所有优先费用,并包含公平拆分和分配它们所需的逻辑。 此分配过程由您(节点操作员)控制,可以随时完成。 它没有时间限制。

您节点的费用分配器的地址基于您的节点地址确定性地确定。 这意味着它是提前知道的,甚至在创建费用分配器之前。 Smartnode 将使用此地址作为您的费用接收者。

注意

默认情况下,当您安装 Smartnode v1.5.0 时(如果尚未部署 Redstone 合约更新),您的费用接收者将设置为 rETH 地址。 一旦部署了 Redstone 更新,Smartnode 将自动将其更新为您节点的费用分配器地址。

此规则的一个例外是,如果您选择加入平滑池 - 有关更多信息,请参阅本页末尾的部分。

新的 Rocket Pool 节点将在注册时自动初始化其节点的分配器合约。 现有节点需要手动执行此过程。 这只需要运行一次。

这样做的一个有趣后果是,您的分配器地址可能会在您初始化节点分配器合约之前开始累积余额。 这没关系,因为一旦您初始化它,您的分配器将获得对所有这些现有余额的访问权限。

您可以查看您的费用分配器的余额,作为以下的一部分:

rocketpool node status

输出将如下所示:

要初始化您节点的分配器,只需运行此新命令:

rocketpool node initialize-fee-distributor
注意

在 Redstone 更新之后,您必须在使用 rocketpool node deposit 创建任何新 minipools 之前调用此函数。

当您的分配器已初始化后,您可以使用以下命令领取并分配其全部余额:

rocketpool node distribute-fees

这将把您的奖励份额发送到您的提款地址

Rocket Pool 协议变化

除了执行客户端和共识客户端的变化以及新的优先费用外,Rocket Pool 协议本身也经历了一些您应该了解的重要变化。

新的奖励系统

Redstone 更新引入的最重要变化之一是新的奖励系统。 这是对节点操作员接收其 RPL 奖励(以及来自平滑池的 ETH - 稍后讨论)方式的完全改革。

奖励系统有以下缺点:

  • 领取成本约 400k gas,这相当昂贵。
  • 节点操作员必须在每个间隔(每 28 天)领取奖励,否则将没收它们。这意味着对于 RPL 数量较少的节点操作员来说,gas 成本可能变得高得令人望而却步。
  • 奖励是在领取时确定的,而不是在检查点时。如果用户在检查点和您的领取之间质押了大量 RPL,您的奖励可能会被稀释,您收到的 RPL 将少于您的预期。

领取系统解决了所有这些问题。

在每个间隔,Oracle DAO 将共同创建 Rocket Pool 网络中节点操作员状态的真实快照,包括他们所有的有效质押金额。 此信息被编译成默克尔树 - 一种非常有效的方式,使所有详细信息对智能合约可用。 默克尔树被构建成 JSON 文件并托管在星际文件系统(IPFS)上,默克尔树的根被提交到合约。

这个新系统具有以下特性:

  • 您现在可以让奖励累积任意长时间。不再有领取时间限制。
  • 您可以一次领取多个间隔
  • 您的第一次领取交易使用约 85k gas。每次后续领取交易成本约 55k gas。
    • 如果您一次领取多个间隔,每个补充间隔成本 6k gas,因此一次领取尽可能多的间隔最具成本效益。
  • 您的 RPL 奖励不再被稀释 - 您的 RPL 奖励在快照时固定,您始终有资格获得该金额。
  • 您可以重新质押部分(或全部)RPL 奖励作为领取交易的一部分,这进一步减少了与今天相比的 gas 需求。
  • 目前,所有领取都必须在主网上,但我们已经建立了基础设施,可以在以后在第 2 层网络上构建领取能力。

当您的节点检测到新的奖励检查点时,它将自动下载该间隔的 JSON 文件。 然后您可以使用以下命令查看您的奖励:

rocketpool node claim-rewards

随着间隔的过去和您累积奖励,输出将如下所示:

在这里,您可以快速查看每个间隔您获得了多少奖励,并可以决定要领取哪些奖励。 请注意,Ropsten 的间隔时间设置为 1 天以方便测试。

您还可以指定在此领取期间要重新质押的金额:

这将让您在一次交易中复合您的 RPL 奖励,使用的 gas 远少于您今天需要使用的 gas。

注意

如果您希望手动构建奖励检查点而不是下载 Oracle DAO 创建的检查点,您可以在 TUI 中将此设置从 Download 更改为 Generate:

正如提示所暗示的,您需要访问存档节点才能执行此操作。 如果您的本地执行客户端不是存档节点,您可以在下面的 Archive-Mode EC URL 框中指定一个单独的存档节点(例如 Infura 或 Alchemy)。 此 URL 仅在生成默克尔树时使用;它不会用于验证职责。

警告

如果您在快照时低于 10% RPL 抵押品,您将没有资格获得该快照的奖励。 与当前系统不同,您可以在领取之前简单地"充值"以再次获得资格,这将在该快照中永久锁定,您将永远不会收到该期间的奖励。 您必须在快照时高于 10% 抵押品才能获得该期间的奖励。

平滑池

Redstone 更新的最后一个令人兴奋的新功能是平滑池。 平滑池是一个可选功能,将汇集选择加入它的每个成员的优先费用。 在奖励检查点期间,池的总 ETH 余额被分为池质押者部分和节点操作员部分。 节点操作员部分的所有奖励都公平分配给池的每个成员

本质上,平滑池是一种有效消除与信标链上区块提议相关的随机性的方法。 如果您曾经有过一段糟糕的运气,几个月都没有提议,您可能会发现平滑池非常令人兴奋。

注意

平滑池奖励内置于用于 RPL 奖励的默克尔树中,因此您在使用 rocketpool node claim-rewards 领取 RPL 的同时领取它们。

为了帮助澄清细节,平滑池使用以下规则:

  • 选择加入平滑池是在节点级别完成的。如果您选择加入,您的所有 minipools 都会选择加入。

  • 节点操作员的总份额由选择加入平滑池的每个节点中每个 minipool 的平均佣金确定。

  • 任何人都可以随时选择加入。他们必须等待一个完整的奖励间隔(Ropsten 上为 1 天,主网上为 28 天)才能选择退出,以防止操纵系统。

    • 选择退出后,您必须再等待一个完整间隔才能重新选择加入。
  • 平滑池计算选择加入的每个节点拥有的每个 minipool 的"份额"(间隔内池的 ETH 部分)。

    • 份额是您的 minipool 在间隔期间的表现(通过查看您在信标链上发送了多少证明,以及您错过了多少证明来计算)和您的 minipool 佣金率的函数。
  • 您节点的总份额是您的 minipool 份额的总和。

  • 您节点的总份额按您选择加入的时间量进行缩放。

    • 如果您在整个间隔内选择加入,您将收到全部份额。
    • 如果您在间隔的 30% 内选择加入,您将收到全部份额的 30%。

要选择加入平滑池,请运行以下命令:

rocketpool node join-smoothing-pool

这将在 Rocket Pool 合约中将您记录为选择加入,并自动将您的验证器客户端的 费用接收者 从您节点的分配器合约更改为平滑池合约。

要离开池,请运行此命令:

rocketpool node leave-smoothing-pool

惩罚系统

为了确保节点操作员不会通过手动修改其验证器客户端中使用的费用接收者来"作弊",Rocket Pool 采用了惩罚系统。

Oracle DAO 不断监控 Rocket Pool 节点操作员产生的每个区块。 任何费用接收者不是以下地址之一的区块都被视为无效:

  • rETH 地址
  • 平滑池地址
  • 节点的费用分配器合约(如果退出平滑池)

提出具有无效费用接收者的区块的 minipool 将收到一次警告。 在第三次警告时,minipool 将开始接收违规 - 每次违规将扣除其总信标链余额的 10%,包括 ETH 收益,并在从 minipool 提取资金时将其发送到 rETH 池质押者。

违规是在 minipool 级别,而不是节点级别。

Smartnode 软件旨在确保诚实的用户永远不会受到惩罚,即使它必须使验证器客户端离线也要这样做。 如果发生这种情况,您将停止证明,并会在日志文件中看到有关 Smartnode 为什么无法正确设置您的费用接收者的错误消息。

升级前后指南

有关如何为升级准备节点以及升级后该做什么的详细信息,请查看以下指南: