オンチェーンpDAO提案への参加

投票権がゼロでないノードは、いつでもpDAO提案を提起または参加できます。提案は次のいずれかのタイプになります:

  • pDAO設定の変更
  • 一時的な財務支出
  • 繰り返しの財務支出(管理委員会)
  • セキュリティカウンシルのメンバーシップ

詳細と根拠については、提案タイプを参照してください。 pDAO提案は、プロトコルレベルでの変更を実行するために存在するオンチェーンエンティティであることを理解することが重要です。

ガバナンスプロセス

提案は、オンチェーンになる前にガバナンスプロセスによって予告される必要があります。

Rocket Poolプロトコルへの変更は、厳格でありながら透明性のあるガバナンスプロセスを使用して提案、投票、実行されます。プロセスは、Discordコミュニティ内でのアイデアの非公式な議論から始まります。このアイデアは、 Discordの#governanceチャンネルと DAO Forumでの正式な議論に進み、Rocket Pool Improvement Proposal (RPIP)の準備として徹底的な調査、モデリング、精査が行われます。その後、ドラフトRPIPが準備され、指定されたRPIPレビュアーによってレビューされ、DAOへの提示の品質と準備が確保されます。 ドラフト提案は、さらなるレビュー、フィードバック、および必要な変更の組み込みのためにフォーラムでDAOに提示されます。コミュニティの意見に基づいて提案が改良されたら、RPIPテキストの最終化の準備ができているかを測るためにDAOフォーラムで投票が行われます。投票が可決され、コミュニティの承認が示された場合、RPIPは最終版としてマークされ、提案を実装すべきかどうかを決定するためにSnapshotを介して実施されるProtocol DAO投票の準備が整います。

ここから、Oracle DAOがオンチェーン提案を提起します。Protocol DAO、Oracle DAO、コミュニティが提案をレビューできる期間があります。コンセンサスに達した場合、提案が実行され、プロトコルに変更が適用されます。

このプロセスの便利な視覚的表現は Rocket Poolウェブサイトにあります。

前提条件

続行する前に、提案のライフサイクルをお読みください。すべての投票期間の違いと各期間中に実行できるアクションについて説明しています。

このページの残りの部分では、オンチェーンpDAO提案への参加に必要な手順を説明します。

投票の初期化

Houstonアップグレード前に登録されたノードオペレーターの場合、投票権のロックを解除するために投票を初期化する必要があります。投票権を持つためには、少なくとも1つのミニプールが必要であることを覚えておいてください。

rocketpool pdao initialize-voting

このコマンドは以下のプロンプトを表示します。注意深くお読みください:

投票権を初期化していただきありがとうございます!

2つのオプションがあります:

1. 直接投票(投票権を自分自身に委任)
   これにより、提案に直接投票できるようになり、
   プロトコルの方向性を個人的に形作ることができます。

2. 投票を委任
   これにより、信頼できる人に投票権を委任し、
   あなたの代わりに投票する権限を与えます。上書きするオプションがあります。

既存の公開デリゲートのリストは https://delegates.rocketpool.net で確認できますが、
任意のノードアドレスに委任できます。

これがどのように機能するかの詳細については: /ja/legacy/houston/participate#participating-in-on-chain-pdao-proposals

続行するには `direct` または `delegate` と入力してください:
  • directと回答すると、投票権がノードに初期化され、Protocol DAO提案に直接投票できるようになります。
  • delegateと回答すると、初期化とデリゲートの設定を同じトランザクション内で行うことで、ガス代を少し節約できます。

これは一度だけ行う必要があります。ノードの初期スナップショット情報を設定します。投票を初期化した後、 実行されるすべてのアクションがノードのスナップショット情報を更新します。投票権が初期化されたら、次のsmartnodeコマンドを使用して投票権を確認できます:

rocketpool pdao status
注意

新しい提案が作成されるたびに、ネットワークの投票権とデリゲート情報のスナップショットを表す投票ツリーが新しい提案と共に作成されます。これは、投票を初期化する前に提起された提案にはノードの投票権が含まれないことを意味します。rocketpool pdao statusは最新のブロックでのノードの投票権を表示しますが、これは特定の提案でのノードの投票権を表している場合もあれば、表していない場合もあります。

投票権の自動初期化

Smartnodeバージョン1.13.8では、まだ投票権を初期化していないノードで自動的に投票権を初期化するように設計された新機能Auto Initialize Vote Powerが導入されました。自動的に初期化された投票権は自己委任されます。 この機能は、rocketpool service configを実行し、**Smartnode and TX Fees**セクションに移動することで、Smartnode設定で構成できます。

Auto-Init Vote Power Gas Thresholdは、この自動トランザクションの制限(gwei単位)です。しきい値を0に設定することで、このタスクをオプトアウトできます。ノードがHoustonアップグレード後に登録された場合、または投票権が既に有効になっている場合は、オプトアウトしてください。

Snapshotシグナリングアドレスの設定

Snapshotシグナリングアドレスを設定すると、ノードキーをホットウォレットに公開することなく、ブラウザまたはモバイルデバイスでSnapshot投票に参加できるようになります。

準備すべきいくつかの事項があります:

  • ノードのアドレス
  • Snapshot投票に使用したいアドレス(シグナリングアドレス)

ノードのアドレスが新しいアドレスに委任できることを示すメッセージに署名します。このメッセージは、ウォレットアドレスをSnapshotシグナリングアドレスとして使用する意図を示しています。

以下のタブから使用しているネットワークを選択してください。

Hoodi Testnet
Mainnet
Hoodi testnetで試す場合は、このページで署名できます: https://testnet.node.rocketpool.net/signalling-address
警告

ノードの秘密鍵をホットウォレットに読み込まないでください。シグナリングアドレスとして別のアカウントを選択してください。 シグナリングアドレスを設定すると、ノードの投票権を使用してSnapshotで投票できるようになります。

まず、MetaMask、WalletConnect、またはウェブサイトがサポートするその他の方法を使用して、シグナリングアドレスとして使用したいアドレスをウェブサイトに接続します。その後、ノードアドレスを検索するためのこのダイアログが表示されます。

次に、ノードアドレスを入力し、オレンジ色の「Find」ボタンをクリックします。これにより、アドレスが登録ノードであるかどうかが確認され、次のステップに進みます。

ヒント

これを行う前に、正しいノードアドレスを持っていることを確認してください! ノードのアドレスを確認する必要がある場合は、rocketpool node statusコマンドを使用してCLIから迅速に取得できます。

サインインしてノードアドレスを確認すると、Snapshotシグナリングアドレスが表示されます。これは、サイトにサインインしたアカウントと同じである必要があります。続行する前に、これが正しいことを再確認してください。目的のアカウントにサインインしていることを確信したら、オレンジ色の「Sign Message」ボタンをクリックします。ウォレット拡張アプリで次のメッセージに署名するよう求められます:

`snapshot signalling address` may delegate to me for Rocket Pool governance

署名にはガス代はかかりませんが、設定にはかかります。署名後、フロントエンドがsmartnodeに貼り付けるコマンドを提供します。smartnodeのCLIに貼り付けて、プロンプトに従ってください。コマンドは次のようになります:

rocketpool pdao set-signalling-address
`snapshot signalling address`
`EIP712 signature`

CLIにこのメッセージが表示されたら、すべて完了です!

The node's signalling address was successfully set to `snapshot signalling address`
ヒント

誤ってサイトを閉じたり、コマンドを見失ったりしても心配しないでください。単純に手順を繰り返し、同じノードアドレスとシグナリングアドレスを使用して再度署名するだけです。フロントエンドはethersライブラリのsigner.Signmessage()を使用します。つまり、署名は同じ入力に対して決定論的です。 詳細についてはここをクリックしてください。

シグナリングアドレスのクリアは非常に簡単で、CLIで次のコマンドを使用するだけです:

rocketpool pdao clear-signalling-address

RPLロックの許可

提案に投票することにのみ興味がある場合は、この手順を無視してかまいません。RPLロックの許可は、提案を提起または異議を唱えたい人にのみ必要です。

RPLロックは提案と異議申し立てに必要です。デフォルトでは、あらゆる目的でのRPLのロックは無効になっています。ノードオペレーターは、ノードまたはプライマリ引き出しアドレスからのRPLのロックを有効にすることで、ガバナンス活動の実行をオプトインします。Smartnodeで次のコマンドを使用してこれを行うことができます:

rocketpool node allow-rpl-locking

これにより、ガバナンス提案を作成または異議を唱える際にRPLのロックを許可するよう促されます。逆に、次のコマンドを使用してRPLロックをオプトアウトできます:

rocketpool node deny-rpl-locking
注意

ロックされたRPLは、報酬、投票、担保要件の目的では、通常のステークされたRPLと同じように機能します。 ロックされたRPLは、RPLを引き出すためのしきい値にはカウントされません。

投票権の委任

ノードオペレーターは、投票権を別のノードオペレーターに委任することを選択できます。唯一の要件は、デリゲートが登録ノードであることです。

別のノードにオンチェーン投票権を委任するには、次のコマンドを使用します:

rocketpool pdao set-voting-delegate `address`
注意

投票権を別のノードオペレーターに委任した場合、デリゲートアドレスを自分のノードのアドレスに設定することでこれをリセットできます。

  • 提案のフェーズ1中: 投票者デリゲートが提案に投票できます。
  • 提案のフェーズ2中: 投票を委任したノードオペレーターは、同意しない場合、デリゲートの投票を覆す機会があります。

委任された投票権を持つノードオペレーターの場合、委任された投票権が提案にカウントされるためには、投票フェーズ1中に投票する必要があります。フェーズ1での投票は、ローカル投票権 + 委任された投票権の価値があります。フェーズ2での投票はローカル投票権のみの価値があります。

提案の作成

提案を行う資格を得るには、ノードはいくつかの要件を満たす必要があります:

  • スナップショットに含まれている(投票の初期化またはHouston後の登録による)
  • 少なくとも1つのミニプールを持っている
  • 非ゼロの投票権を持っている
  • RPLロックを許可している
  • 提案ボンドより大きいRPLステーク(既にロックされたRPLを差し引いたもの)を持っている

提案はパラメータを変更し、プロトコルレベルでコードを実行するために存在します! 提案がオンチェーンで作成される前に、ガバナンスプロセスを通じて議論とコンセンサスが必要です。

rocketpool pdao proposeコマンドを使用してオプションメニューを表示します

COMMANDS:
   rewards-percentages, rp      Propose updating the RPL rewards allocation percentages for node operators, the Oracle DAO, and the Protocol DAO
   one-time-spend, ots          Propose a one-time spend of the Protocol DAO's treasury
   recurring-spend, rs          Propose a recurring spend of the Protocol DAO's treasury
   recurring-spend-update, rsu  Propose an update to an existing recurring spend plan
   security-council, sc         Modify the security council
   setting, s                   Make a Protocol DAO setting proposal

これらの各コマンドは、希望する提案を作成するための入力リストを促します。このガイドでは、例としてセキュリティカウンシルにノードを招待します。セキュリティカウンシルにノードを招待する提案を提起するには、次のコマンドを使用します:

rocketpool pdao propose security-council invite

この手順は、提案のタイプによって若干の違いがあることを覚えておいてください。この特定のコマンド: rocketpool pdao propose security-council inviteは、IDの後にメンバーアドレスを入力するよう促します。

Please enter an ID for the member you'd like to invite: (no spaces)
test-member

Please enter the member's address:
0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145

... gas estimations ...

Are you sure you want to propose inviting test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) to the security council? [y/n]

これがブロックに含まれた後、pDAO提案が作成されます! 提案は作成時に投票遅延期間に入ります。

提案の状態の表示

すべての提案にはproposalIDが割り当てられます。この場合、0xBdbc...をセキュリティカウンシルに招待する提案はID 71で表されます。提案の状態を表示する方法はいくつかあります。1つの方法は、すべてのpDAO提案のリストと状態(保留中、成功、実行済みなど)を表示します。2つ目の方法は、特定の提案に関する詳細を表示します。

提案のリストの表示
提案の詳細の表示

すべての提案を一覧表示するには、次のコマンドを使用します:

rocketpool pdao proposals list

これにより、すべての提案とその状態のリストが表示されます

1 Pending proposal(s):

71: invite test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) to the security council - Proposed by:
0x681B8BBf08708e64694005c7Dc307b381b4D1A7D

Succeeded proposal(s):

Executed proposal(s):

Destroyed proposal(s):

Quorum not Met proposal(s):

Defeated proposal(s):

Expired proposal(s):

ここで、提案invite test-memberのIDが71であり、保留中の状態であることがわかります。この状態では、 異議申立人が提案者によって提供されたmerkle pollard(投票権の計算に使用)の有効性に異議を唱えることができます。proposal.vote.delay.timeが終了すると、 提案はアクティブな投票フェーズに移行します。復習として、提案のライフサイクルを自由にレビューしてください。

提案への投票

投票期間中、ノードオペレーターデリゲートは次の4つのオプションのいずれかで投票できます:

1. Abstain: 投票者の投票権は定足数に寄与しますが、提案に賛成でも反対でもありません。
2. For: 投票者は提案の実行に賛成票を投じます。
3. Against: 投票者は提案の実行に反対票を投じます。
4. Veto: 投票者は提案に反対票を投じると同時に、提案がスパムまたは悪意のあるものとみなすことを示します。

彼らの投票権は選択したオプションに適用されます。投票権は「有効なRPLステーク」の関数です。 より詳細な読み物は rocketpool-researchリポジトリで見つけることができます。

注意

委任された投票権を持つノードオペレーターの場合、委任された投票権が提案にカウントされるためには、投票フェーズ1中に投票する必要があります。フェーズ1での投票は、ローカル投票権 + 委任された投票権の価値があります。フェーズ2での投票はローカル投票権のみの価値があります。ノードは提案に対して一度だけ投票できることを覚えておいてください。慎重に選択してください。

投票を行うには、次のコマンドを使用します:

rocketpool pdao proposals vote

アクティブな投票フェーズに少なくとも1つの提案がある場合、投票する提案を選択するよう促されます。 メニューには、ノードが投票できるすべての提案が表示されるはずです:

1: proposal 71 (message: 'invite test-member', payload: proposalSecurityInvite(test-member,0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145), phase 1 end: 14 Mar 24 05:40 UTC, vp required: 0.00, for: 0.00, against: 0.00, abstained: 0.00, veto: 0.00, proposed by: 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D)
2: proposal 72 (message: 'replace langers-not-his-eoa (0xaC1396c21Eaf6630113516C69d63b7CB59B98b3E) on the security council with tpan (0x6E9E4Cc0A8172349E049128574E1fb85B8D3CE9E)', payload: proposalSecurityReplace(0xaC1396c21Eaf6630113516C69d63b7CB59B98b3E,tpan,0x6E9E4Cc0A8172349E049128574E1fb85B8D3CE9E), phase 1 end: 14 Mar 24 05:40 UTC, vp required: 0.00, for: 0.00, against: 0.00, abstained: 0.00, veto: 0.00, proposed by: 0xe2fC31d61E28BB16c0857D4682AB3616FA7A793d)
3: proposal 73 (message: 'set proposal.vote.delay.time', payload: proposalSettingUint(rocketDAOProtocolSettingsProposals,proposal.vote.delay.time,60), phase 1 end: 14 Mar 24 05:41 UTC, vp required: 0.00, for: 0.00, against: 0.00, abstained: 0.00, veto: 0.00, proposed by: 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D)

オプションを選択すると、投票方法を尋ねられます。

How would you like to vote on the proposal?
1: Abstain
2: In Favor
3: Against
4: Veto

オプションを選択すると、投票権が表示され、トランザクションを送信するよう促されます:

Your current voting power: 20123617964

+============== Suggested Gas Prices ==============+
| Avg Wait Time |  Max Fee  |    Total Gas Cost    |
| 15 Seconds    | 76 gwei   | 0.0176 to 0.0265 ETH |
| 1 Minute      | 56 gwei   | 0.0127 to 0.0190 ETH |
| 3 Minutes     | 56 gwei   | 0.0127 to 0.0190 ETH |
| >10 Minutes   | 56 gwei   | 0.0127 to 0.0190 ETH |
+==================================================+
These prices include a maximum priority fee of 2.00 gwei.
Please enter your max fee (including the priority fee) or leave blank for the default of 56 gwei:

トランザクションがブロックに含まれたら、提案への投票は成功です! この時点で、 rocketpool pdao proposal details <proposal-id>を使用して提案の状態を表示できます。提案が成功するには、投票権必要数のproposal.quorumに達し、過半数の賛成投票権が必要です。

Voting power required:  140970562215
Voting power for:       197980809837
Voting power against:   0
Voting power abstained: 0
Voting power against:   0
Node has voted:         In Favor

上記の例が通過するには、投票権が140970562215の定足数を超える必要があります。 197980809837の賛成投票権があり、反対または棄権の投票はありません。提案は成功に向けて準備が整っており、 proposal.vote.phase2.timeの終了までに実行の準備ができています。

成功した提案の実行

おめでとうございます! 提案が可決されました! あとは提案を実行するだけです。誰でも提案の実行者になれることを覚えておいてください。成功した提案を実行するには、次のコマンドを入力します:

rocketpool pdao execute

オプションを選択すると、トランザクションを送信するよう促されます。このトランザクションがブロックに含まれると、 Rocket Poolプロトコルに変更が適用されます!

Please select a proposal to execute:
1: All available proposals
2: proposal 71 (invite test-member (0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145) to the security council)',
proposalSecurityInvite(test-member,0xBdbcb42DD8E39323a395B2B72d2c8E7039f1F145)

ボンドと報酬の請求

提案者または異議申立人は、提案の終了時にボンドを請求できます。提案の結果に応じて、 提案者または異議申立人はproposal.bondproposal.challenge.bondを請求できる場合とできない場合があります。

ボンドを請求できる条件を規定するルールは次のとおりです:

  • 提案が却下された場合、提案者はボンドを没収し、提案の却下に貢献した異議申立人の間で比例配分されます。他のすべての異議申立人はボンドのみを取り戻します。
  • 提案の却下に貢献するとは、異議申立人が後で提案者が異議に応答できないことによって誤りであることが証明されたインデックスを提出したことを意味します。複数の誤ったインデックスが存在する可能性がありますが、提案の却下につながったもののみが報酬を共有します。他のすべての異議申立人はボンドのみを取り戻します。
  • 異議申立人がノードに異議を唱え、提案者が応答し、提案が却下されなかった場合。提案者は無効な異議からの異議ボンドを請求できます。
  • 提案が却下された場合、提案者はボンドを没収し、提案の却下に貢献した異議申立人の間で比例配分されます。

ボンドを請求するには、次のコマンドを使用します:

rocketpool pdao claim-bonds

これにより、ボンドを請求できるすべての提案が表示されます。指定した提案からボンドを請求するか、すべての適格な提案からボンドと報酬を請求できます。

Please select a proposal to unlock bonds / claim rewards from:
1: All available proposals
2: Proposal 42 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
3: Proposal 43 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
4: Proposal 44 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
5: Proposal 46 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
6: Proposal 47 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
7: Proposal 48 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)
8: Proposal 49 (proposer: true, unlockable: 21.00 RPL, rewards: 0.00 RPL)

オプションを選択すると、ネットワークの現在のガスコストの推奨事項が表示されます。ガス価格の選択を確認し、残りのプロンプトに従います。

+============== Suggested Gas Prices ==============+
| Avg Wait Time |  Max Fee  |    Total Gas Cost    |
| 15 Seconds    | 26 gwei   | 0.1591 to 0.2387 ETH |
| 1 Minute      | 21 gwei   | 0.1261 to 0.1891 ETH |
| 3 Minutes     | 21 gwei   | 0.1261 to 0.1891 ETH |
| >10 Minutes   | 21 gwei   | 0.1261 to 0.1891 ETH |
+==================================================+

These prices include a maximum priority fee of 2.00 gwei.
Please enter your max fee (including the priority fee) or leave blank for the default of 21 gwei:


Using a max fee of 21.00 gwei and a priority fee of 2.00 gwei.
Are you sure you want to claim bonds and rewards from 7 proposals? [y/n]

すべての利用可能な提案を請求する最初のオプションを選択した場合、それらは1つのトランザクションとしてではなく、それぞれ個別に実行されることに注意してください。

繰り返し財務支出の作成

繰り返し財務支出を作成するには、いくつかの入力を準備する必要があります:

  • コントラクト名
  • 受取人のアドレス
  • 期間ごとに送信するRPLの量
  • 繰り返し支払いの開始時刻(UNIXタイムスタンプとして)
  • 各支払い期間の長さ(時間/分/秒単位)(例: 168h0m0s)
  • 支払い期間の数
情報

受取人は支払いを請求するためにコントラクト名をメモしておく必要があります。ただし、この情報は保存されており、rocketpool pdao proposals details <proposal-id>コマンドを使用して取得できるので心配しないでください

繰り返し財務支出を設定する提案を提起するには、次のsmartnodeコマンドを使用し、プロンプトに従います:

rocketpool pdao propose recurring-spend

すべてをまとめると次のようになります:

Please enter a contract name for this recurring payment:
test-recurring-spend

Please enter a recipient address for this recurring payment:
0x681B8BBf08708e64694005c7Dc307b381b4D1A7D

Please enter an amount of RPL to send to 0x681B8BBf08708e64694005c7Dc307b381b4D1A7D per period:
1

Your value will be multiplied by 10^18 to be used in the contracts, which results in:

[1000000000000000000]

Please make sure this is what you want and does not have any floating-point errors.

Is this result correct? [y/n]
y

Please enter the time that the recurring payment will start (as a UNIX timestamp):
1717935233

The provided timestamp corresponds to 2024-06-09 12:13:53 +0000 UTC - is this correct? [y/n]
y

Please enter the length of each payment period in hours / minutes / seconds (e.g., 168h0m0s):
720h

Please enter the total number of payment periods:
24

必要なすべての入力を入力すると、繰り返し支払いを作成する提案が提起されます。pDAOがこの提案を可決して実行すると、受取人には2024-06-09 12:13:53 +0000 UTCから始まり、 720時間ごとに合計24回の支払いとして1 RPLが割り当てられます。

繰り返し財務支出の請求

繰り返し支払いの請求は非常に簡単です! フロントエンドツール こちらに移動してください。 Hoodi testnetで試している場合は、代わりにこのリンクを使用してください。

サイトにアクセスしたら、connect walletボタンをクリックします。利用規約とプライバシーポリシーを読んで受け入れてください。これにより、接続するさまざまな方法が有効になります。次に、metamaskに接続をクリックします。

MetaMaskは、ウェブサイトに接続するアカウントを選択するよう求めます。サインインしたら、コントラクト名を入力する必要があります。これにより、すべての関連詳細が表示されます。受取人のアドレスを再確認してください。誰でも請求関数を呼び出すことができますが、各支払いコントラクトにはRPLを 分配する指定された受取人がいます。

いつでも支払いを請求できます。最新の期間までの未請求のRPL合計を取得するだけです。 あるいは、すべての期間が経過するまで待って一度にすべてを収集し、ガス代を節約することもできます。

準備ができたら、大きなオレンジ色のclaimボタンを押し、metamask(または好みのウォレット)でトランザクションを確認します。完了したら、すべて完了です!