参与链上 pDAO 提案

任何拥有非零投票权的节点都可以随时发起或参与 pDAO 提案。提案可以是以下类型之一:

  • 更改 pDAO 设置
  • 一次性国库支出
  • 重复国库支出(管理委员会)
  • 安全委员会成员资格

有关更多细节和理由,请参阅提案类型。 重要的是要理解 pDAO 提案是一个链上实体,用于在协议层面执行更改。

治理流程

提案在最终上链之前应该通过治理流程进行预告。

对 Rocket Pool 协议的更改通过严格但透明的治理流程进行提议、投票和执行。该流程始于 Discord 社区内对想法的非正式讨论。然后,这个想法在 Discord 的 #governance 频道和 DAO 论坛中进行正式讨论,在准备成为 Rocket Pool 改进提案 (RPIP) 之前经过彻底的研究、建模和审查。随后,准备并由指定的 RPIP 审查员审查 RPIP 草案,以确保其质量和准备程度以提交给 DAO。然后草案提案在论坛上向 DAO 展示,以供进一步审查、反馈和纳入任何必要的修改。一旦提案根据社区意见进行了完善,就会在 DAO 论坛上发起投票以衡量是否准备好最终确定 RPIP 文本。如果投票通过,表示社区批准,RPIP 将被标记为最终版本并准备进行 Protocol DAO 投票,该投票通过 Snapshot 进行,以确定是否应实施该提案。

从这里开始,Oracle DAO 将发起链上提案。Protocol DAO、Oracle DAO 和社区有一个窗口期来审查提案。如果达成共识,提案将被执行,更改将应用于协议。

可以在 Rocket Pool 网站上找到此流程的便捷可视化表示。

前提条件

在继续之前,请阅读提案的生命周期。它将解释所有投票期之间的差异以及在每个期间可以采取的行动。

本页的其余部分将引导您完成参与链上 pDAO 提案所需的步骤。

初始化投票

如果您是在 Houston 升级之前注册的节点运营者,则需要初始化投票以解锁投票权。请记住,拥有至少一个迷你池是拥有投票权的要求。

rocketpool pdao initialize-voting

此命令将引发以下提示。请仔细阅读:

感谢您初始化投票权!

您有两个选项:

1. 直接投票(将投票权委托给自己)
   这将允许您直接对提案进行投票,
   让您亲自塑造协议的方向。

2. 委托您的投票
   这将把您的投票权委托给您信任的人,
   赋予他们代表您投票的权力。您将有机会覆盖。

您可以在 https://delegates.rocketpool.net 查看现有公开委托人列表,
但是,您可以委托给任何节点地址。

通过以下方式了解更多信息: /zh/legacy/houston/participate#participating-in-on-chain-pdao-proposals

请输入 `direct` 或 `delegate` 继续:
  • 如果您回答 direct,投票权将初始化到您的节点,您将能够直接对 Protocol DAO 提案进行投票。
  • 如果您回答 delegate,您将有机会通过在同一交易中初始化投票和设置委托人来节省一些 gas。

您只需执行一次此操作。它为节点配置初始快照信息。初始化投票后,采取的每个操作都会更新节点的快照信息。初始化投票权后,您可以使用以下智能节点命令检查您拥有多少投票权:

rocketpool pdao status
注意

每当创建新提案时,都会创建一个代表网络投票权和委托信息快照的投票树,与新提案一起创建。这意味着如果提案是在您初始化投票之前提出的,您节点的投票权将不会包含在提案中。rocketpool pdao status 将显示您节点在最新区块的投票权,这可能代表也可能不代表您在特定提案上的投票权。

自动初始化投票权

智能节点版本 1.13.8 引入了一项新功能自动初始化投票权,旨在自动为尚未初始化投票权的节点初始化投票权。自动初始化的投票权是自我委托的。可以通过运行 rocketpool service config 并导航到智能节点和 TX 费用部分在智能节点设置中配置此功能。

自动初始化投票权 Gas 阈值是对此自动交易的限制(以 gwei 为单位)。您可以通过将阈值设置为 0 来选择退出此任务。如果您的节点在 Houston 升级后注册或投票权已启用,请随意选择退出。

设置您的 Snapshot 信号地址

设置您的 Snapshot 信号地址将允许您在浏览器或移动设备上参与 Snapshot 投票,而无需将节点密钥暴露给热钱包。

需要准备一些东西:

  • 您节点的地址
  • 您想用于 snapshot 投票的地址(信号地址)

您将签署一条消息,说明您的节点地址可以委托给新地址。此消息说明您打算使用您的钱包地址作为 Snapshot 信号地址。

从下面的选项卡中选择您正在使用的网络。

Hoodi 测试网
主网
如果您在 Hoodi 测试网上尝试此操作,您可以在此页面上签名: https://testnet.node.rocketpool.net/signalling-address
警告

不要将节点的私钥加载到热钱包。请选择另一个账户作为您的信号地址。 设置信号地址后,您可以使用它在 Snapshot 上使用节点的投票权进行投票。

首先连接您想用作信号地址的地址到网站,使用 MetaMask、WalletConnect 或网站支持的任何其他方法。然后您将看到此对话框以查找您的节点地址。

接下来,您将输入节点地址,然后单击橙色"查找"按钮。这将检查该地址是否为已注册节点,然后将您带到下一步。

提示

在执行此操作之前,请确保您拥有正确的节点地址! 如果您需要确认节点地址,可以使用 rocketpool node status 命令通过 CLI 快速检索它。

登录并确认节点地址后,您将看到您的 Snapshot 信号地址。它应该与您登录网站的账户相同。在继续之前,请仔细检查这是否正确。一旦您确信已登录到所需账户,请单击橙色"签署消息"按钮。您将在钱包扩展应用程序中看到签署以下消息的提示:

`snapshot 信号地址` 可以代表我进行 Rocket Pool 治理委托

签署不会花费任何 gas,但设置会。签署后,前端将为您提供一个命令粘贴到智能节点中。继续将其粘贴到智能节点的 CLI 中并按照提示步骤操作。该命令应该看起来像这样:

rocketpool pdao set-signalling-address
`snapshot 信号地址`
`EIP712 签名`

如果您在 CLI 中看到此消息,则一切就绪!

节点的信号地址已成功设置为 `snapshot 信号地址`
提示

如果您不小心关闭了网站或丢失了命令,请不要担心。您可以简单地重复这些步骤并使用相同的节点地址和信号地址再次签名。前端使用来自 ethers 库的 signer.Signmessage(),这意味着在给定相同输入的情况下,您的签名是确定性的。 单击此处了解更多信息。

清除信号地址非常简单,只需在 CLI 中使用此命令:

rocketpool pdao clear-signalling-address

允许 RPL 锁定

如果您只对投票提案感兴趣,则可以忽略此步骤。允许 RPL 锁定仅对那些希望提出或挑战提案的人是必需的。

提议和挑战需要 RPL 锁定。默认情况下,出于任何目的锁定 RPL 都将被禁用。节点运营者将通过启用从其节点或主要提款地址锁定 RPL 来选择参与治理活动。您可以在智能节点中使用此命令执行此操作:

rocketpool node allow-rpl-locking

这将提示您在创建或挑战治理提案时允许锁定 RPL。相反,您可以使用以下命令选择退出 RPL 锁定:

rocketpool node deny-rpl-locking
注意

锁定的 RPL 在奖励、投票和抵押品要求方面的作用与常规质押 RPL 相同。 锁定的 RPL 不计入提取 RPL 的阈值。

委托投票权

节点运营者可以选择将其投票权委托给另一个节点运营者。唯一的要求是您的委托人是已注册的节点。

要将链上投票权委托给另一个节点,请使用以下命令:

rocketpool pdao set-voting-delegate `地址`
注意

如果您已将投票权委托给另一个节点运营者,您可以通过将委托地址设置为您自己的节点地址来重置此设置。

  • 在提案的第 1 阶段:投票者委托人可以对提案投票。
  • 在提案的第 2 阶段:已委托投票的节点运营者有机会推翻其委托人的投票(如果他们不同意)。

如果您是拥有委托投票权的节点运营者,您必须在投票第 1 阶段投票,委托投票权才能计入提案。您在第 1 阶段的投票将价值您的本地投票权 + 委托投票权。您在第 2 阶段的投票仅价值您的本地投票权

创建提案

为了有资格提出提案,节点必须满足一些要求:

  • 包含在快照中(通过初始化投票或在 Houston 后注册)
  • 必须至少有一个迷你池
  • 拥有非零投票权
  • 已允许 RPL 锁定
  • RPL 质押(减去任何已锁定的 RPL)大于提案保证金

提案的存在是为了在协议层面更改参数和执行代码! 在链上创建提案之前,应该通过治理流程进行讨论和达成共识。

使用命令 rocketpool pdao propose 调出选项菜单

命令:
   rewards-percentages, rp      提议更新节点运营者、Oracle DAO 和 Protocol DAO 的 RPL 奖励分配百分比
   one-time-spend, ots          提议 Protocol DAO 国库的一次性支出
   recurring-spend, rs          提议 Protocol DAO 国库的重复支出
   recurring-spend-update, rsu  提议更新现有的重复支出计划
   security-council, sc         修改安全委员会
   setting, s                   提出 Protocol DAO 设置提案

这些命令中的每一个都会提示您输入一系列输入以创建您想要的提案。在本指南中,我们将邀请一个节点加入安全委员会作为示例。要提出邀请节点加入安全委员会的提案,您将使用以下命令:

rocketpool pdao propose security-council invite

请记住,根据提案类型,此步骤会有一些轻微的变化。这个特定命令:rocketpool pdao propose security-council invite 将提示您输入 ID,然后输入成员地址。

请输入您要邀请的成员的 ID:(无空格)
test-member

请输入成员的地址:
0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145

... gas 估算 ...

您确定要提议邀请 test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) 加入安全委员会吗? [y/n]

将此包含在区块中后,将创建一个 pDAO 提案! 提案将在创建时进入投票延迟期

查看提案状态

每个提案都分配有一个 proposalID。在这种情况下,我们邀请 0xBdbc... 加入安全委员会的提案用 ID 71 表示。有几种方法可以查看提案状态。一种方法将显示每个 pdao 提案及其状态(待处理、成功、已执行等)的列表。第二种方法显示有关特定提案的详细信息。

查看提案列表
查看提案详情

要列出所有提案,请使用以下命令:

rocketpool pdao proposals list

这将显示所有提案及其状态的列表

1 个待处理提案:

71: 邀请 test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) 加入安全委员会 - 提议者:
0x681B8BBf08708e64694005c7Dc307b381b4D1A7D

成功的提案:

已执行的提案:

已销毁的提案:

未达到法定人数的提案:

失败的提案:

已过期的提案:

在这里我们可以看到我们的提案 邀请 test-member 的 ID 为 71,并且处于待处理状态。在此状态下, 挑战者可以对提议者提供的 merkle pollard(用于计算投票权)的有效性提出异议。当 proposal.vote.delay.time 结束时, 提案将过渡到活跃投票阶段。请随意查看提案的生命周期以进行复习。

对提案投票

在投票期间,节点运营者委托人可以使用四个选项之一投票:

1. 弃权: 投票者的投票权计入法定人数,但既不支持也不反对提案。
2. 赞成: 投票者投票支持执行提案。
3. 反对: 投票者投票反对执行提案。
4. 否决: 投票者投票反对提案,并表示他们认为该提案是垃圾或恶意的。

他们的投票权将应用于他们选择的选项。投票权是"有效 RPL 质押"的函数。 可以在 rocketpool-research 仓库中找到更详细的阅读。

注意

如果您是拥有委托投票权的节点运营者,您必须在投票第 1 阶段投票,委托投票权才能计入提案。您在第 1 阶段的投票将价值您的本地投票权 + 委托投票权。您在第 2 阶段的投票仅价值您的本地投票权。请记住,节点只能对提案投票一次,因此请谨慎选择。

使用此命令投票:

rocketpool pdao proposals vote

如果至少有一个提案处于活跃投票阶段,系统将提示您选择要投票的提案。 菜单应显示您的节点有资格投票的所有提案:

1: 提案 71 (消息: '邀请 test-member', 载荷: proposalSecurityInvite(test-member,0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145), 第 1 阶段结束: 14 Mar 24 05:40 UTC, 所需 vp: 0.00, 赞成: 0.00, 反对: 0.00, 弃权: 0.00, 否决: 0.00, 提议者: 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D)
2: 提案 72 (消息: '用 tpan (0x6E9E4Cc0A8172349E049128574E1fb85B8D3CE9E) 替换安全委员会中的 langers-not-his-eoa (0xaC1396c21Eaf6630113516C69d63b7CB59B98b3E)', 载荷: proposalSecurityReplace(0xaC1396c21Eaf6630113516C69d63b7CB59B98b3E,tpan,0x6E9E4Cc0A8172349E049128574E1fb85B8D3CE9E), 第 1 阶段结束: 14 Mar 24 05:40 UTC, 所需 vp: 0.00, 赞成: 0.00, 反对: 0.00, 弃权: 0.00, 否决: 0.00, 提议者: 0xe2fC31d61E28BB16c0857D4682AB3616FA7A793d)
3: 提案 73 (消息: '设置 proposal.vote.delay.time', 载荷: proposalSettingUint(rocketDAOProtocolSettingsProposals,proposal.vote.delay.time,60), 第 1 阶段结束: 14 Mar 24 05:41 UTC, 所需 vp: 0.00, 赞成: 0.00, 反对: 0.00, 弃权: 0.00, 否决: 0.00, 提议者: 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D)

选择一个选项后,系统会询问您想如何投票。

您想如何对提案投票?
1: 弃权
2: 赞成
3: 反对
4: 否决

选择一个选项将显示您的投票权,然后提示您发送交易:

您当前的投票权: 20123617964

+============== 建议的 Gas 价格 ==============+
| 平均等待时间 |  最高费用  |    总 Gas 成本    |
| 15 秒    | 76 gwei   | 0.0176 到 0.0265 ETH |
| 1 分钟      | 56 gwei   | 0.0127 到 0.0190 ETH |
| 3 分钟     | 56 gwei   | 0.0127 到 0.0190 ETH |
| >10 分钟   | 56 gwei   | 0.0127 到 0.0190 ETH |
+==================================================+
这些价格包括最高 2.00 gwei 的优先费用。
请输入您的最高费用(包括优先费用)或留空使用默认的 56 gwei:

交易被包含在区块中后,您已成功对提案投票! 此时,您可以使用 rocketpool pdao proposal details <proposal-id> 查看提案状态。提案需要达到 proposal.quorum 所需投票权和多数赞成投票权才能成功。

所需投票权:  140970562215
赞成投票权:       197980809837
反对投票权:   0
弃权投票权: 0
反对投票权:   0
节点已投票:         赞成

对于上面的示例要通过,投票权需要超过 140970562215 投票权的法定人数。有 197980809837 投票权支持,没有反对或弃权的投票。该提案有望成功,并准备好在 proposal.vote.phase2.time 结束时执行。

执行成功的提案

恭喜! 您的提案已通过! 现在剩下的就是执行提案。请记住,任何人都可以成为提案的执行者。要执行成功的提案,请输入命令:

rocketpool pdao execute

选择一个选项将提示您发送交易。一旦此交易被包含在区块中,更改将应用于 Rocket Pool 协议!

请选择要执行的提案:
1: 所有可用提案
2: 提案 71 (邀请 test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) 加入安全委员会)',
proposalSecurityInvite(test-member,0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145)

领取保证金和奖励

提议者或挑战者可以在提案结束时领取其保证金。根据提案的结果,提议者或挑战者可能能够也可能无法领取其 proposal.bondproposal.challenge.bond

以下是一些规定保证金可以被领取的条件的规则:

  • 如果提案被否决,提议者将没收其保证金,该保证金将按比例分配给导致提案失败的挑战者。所有其他挑战者只能收回其保证金。
  • 导致提案失败意味着挑战者提交了一个索引,该索引后来被证明是不正确的,因为提议者无法回应挑战。可能存在多个不正确的索引,但只有那些导致提案失败的索引才能分享奖励。所有其他挑战者只能收回其保证金。
  • 如果挑战者挑战节点,提议者响应,并且提案没有被否决。提议者可以从无效挑战中领取挑战保证金。
  • 如果提案被否决,提议者将没收其保证金,该保证金将按比例分配给导致提案失败的挑战者。

使用此命令领取保证金:

rocketpool pdao claim-bonds

这将显示您有资格从中领取保证金的每个提案。您可以从指定提案领取保证金,也可以从所有符合条件的提案领取保证金和奖励。

请选择要解锁保证金/领取奖励的提案:
1: 所有可用提案
2: 提案 42 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
3: 提案 43 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
4: 提案 44 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
5: 提案 46 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
6: 提案 47 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
7: 提案 48 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)
8: 提案 49 (提议者: true, 可解锁: 21.00 RPL, 奖励: 0.00 RPL)

选择一个选项后,系统将提示您网络当前的 gas 成本建议; 确认您的 gas 价格选择并按照其余提示操作。

+============== 建议的 Gas 价格 ==============+
| 平均等待时间 |  最高费用  |    总 Gas 成本    |
| 15 秒    | 26 gwei   | 0.1591 到 0.2387 ETH |
| 1 分钟      | 21 gwei   | 0.1261 到 0.1891 ETH |
| 3 分钟     | 21 gwei   | 0.1261 到 0.1891 ETH |
| >10 分钟   | 21 gwei   | 0.1261 到 0.1891 ETH |
+==================================================+

这些价格包括最高 2.00 gwei 的优先费用。
请输入您的最高费用(包括优先费用)或留空使用默认的 21 gwei:


使用最高费用 21.00 gwei 和优先费用 2.00 gwei。
您确定要从 7 个提案中领取保证金和奖励吗? [y/n]

请注意,如果您选择第一个选项来领取所有可用提案,它们将分别执行,而不是作为一个交易执行。

创建重复国库支出

您需要准备一些输入来创建重复国库支出:

  • 合约名称
  • 接收者的地址
  • 每个周期发送的 RPL 金额
  • 重复付款的开始时间(作为 UNIX 时间戳)
  • 每个付款周期的长度,以小时/分钟/秒为单位(例如,168h0m0s)
  • 付款周期数
信息

接收者需要记下合约名称以领取付款。不过别担心,因为此信息已存储,可以使用命令 rocketpool pdao proposals details <proposal-id> 检索

要提出设置重复国库支出的提案,请使用以下智能节点命令并按照提示操作:

rocketpool pdao propose recurring-spend

以下是它们放在一起的样子:

请输入此重复付款的合约名称:
test-recurring-spend

请输入此重复付款的接收者地址:
0x681B8BBf08708e64694005c7Dc307b381b4D1A7D

请输入每个周期向 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D 发送的 RPL 金额:
1

您的值将乘以 10^18 以在合约中使用,结果为:

[1000000000000000000]

请确保这是您想要的,并且没有任何浮点错误。

这个结果正确吗? [y/n]
y

请输入重复付款开始的时间(作为 UNIX 时间戳):
1717935233

提供的时间戳对应于 2024-06-09 12:13:53 +0000 UTC - 这是否正确? [y/n]
y

请输入每个付款周期的长度,以小时/分钟/秒为单位(例如,168h0m0s):
720h

请输入付款周期总数:
24

输入所有必需的输入后,将提出创建重复付款的提案。当 pDAO 通过并执行此提案时,接收者将从 2024-06-09 12:13:53 +0000 UTC 开始,每 720 小时分配 1 RPL,总共 24 次付款

领取重复国库支出

领取重复付款应该非常简单! 导航到我们的前端工具这里进行操作。如果您在 Hoodi 测试网上尝试此操作,请使用链接。

进入网站后,单击连接钱包按钮。请阅读并接受服务条款和隐私政策,这将启用不同的连接方式,然后单击连接 metamask

MetaMask 将提示您选择要连接到网站的账户。登录后,您需要输入合约名称。这样做将显示所有相关详细信息。请务必仔细检查接收者的地址。任何人都可以调用领取功能,但每个付款合约都将有一个指定的接收者来分配 RPL。

您可以随时领取付款,您只会获得直到最近周期的总未领取 RPL。或者,您可以等到所有周期都通过后一次性收集所有内容,以节省 gas。

准备好后,只需点击大橙色领取按钮,然后在 metamask(或您首选的钱包)中查看交易。完成后,您就完成了!