ノードオペレーター報酬の請求

Rocket Poolのノードオペレーターとして、RPLトークンの形で定期的な報酬を受け取る権利があります。また、Smoothing Poolにオプトインしている場合は、ETHも受け取ることができます。 このセクションでは、これらの報酬の仕組みと請求方法について説明します。

報酬とチェックポイント

定期的な間隔で、Rocket Poolはネットワーク上でチェックポイントをフラグします。 現在、チェックポイントは28日ごとに発生します。

新しいチェックポイントで、Oracle DAOは共同でRocket Poolネットワーク内のノードオペレーターの状態の真のスナップショットを作成し、それを使用してその間隔中の各ノードのRPLおよびSmoothing Pool ETH報酬を決定します。Saturn 0 minipoolの「ボーナス手数料」はSmoothing Pool報酬を使用して分配されることに注意してください(Saturn 0 minipoolは2024/10/28以降に作成され、契約手数料が5%のものです)。

この情報はMerkle Treeにコンパイルされます。これは、すべての詳細をスマートコントラクトで利用できるようにする非常に効率的な方法です。 Merkle TreeはJSONファイルに構築され、InterPlanetary File System(IPFS)でホストされ、私たちが管理するGitHubリポジトリでミラーリングされます。

ツリーが送信されると、Rocket Poolスマートコントラクトは新しいRPLトークンをミントし、Smoothing Poolの全ETH残高とともに、安全な保管のためにRocket Poolボールトに移動します。 その後、その間隔中に獲得したRPLとETHの報酬の量を確認し、それらの報酬を請求できます。

報酬システムには次の機能があります。

  • 各間隔は独立しています。1つの間隔で獲得したRPLとETHの量は、後続の間隔の収益に影響しません。
  • 報酬を好きなだけ蓄積させることができます。特定の時間までに報酬を請求する必要はありません。いつでも請求できるように常に利用可能であり、いつ請求してもまったく同じ量のRPLとETHを提供します
  • 一度に1つの間隔を請求することも、複数の間隔を一度に請求することもできます。
  • 最初の請求トランザクションは約85kのガスを使用します。後続の各請求トランザクションは約55kのガスを消費します。
    • 一度に複数の間隔を請求している場合、各追加の間隔には6kのガスがかかるため、できるだけ多くを一度に請求するのが最もコスト効率が良いです。
  • 請求トランザクションの一部としてRPL報酬の一部(またはすべて)を再ステーキングできるため、すべてが単一のトランザクションで実行されます(これによりガスコストがさらに削減されます)。
  • 現在、すべての請求はMainnetで行う必要がありますが、後日Layer 2ネットワークで請求する機能を構築するためのインフラストラクチャが整っています。

Merkle Treeがどのように構築され、報酬がどのように計算されるかについての詳細は、私たちのresearchリポジトリにアクセスして公式仕様を確認してください。 以下にそれらの簡単な説明を提供しました。

RPL報酬

RPLの現在の報酬レートは年間5%のインフレであり、報酬は28日ごとに支払われます。 2024/10/21の時点で、最後の期間のインフレは77,533でした。70%はRocket Poolノードオペレーターに分配されるため、その期間は54,273 RPLでした。

この量は、ネットワーク上のすべてのノードオペレーターの間で、ノードウェイトに基づいて分割されます。 ノードオペレーターは、借入ETHの0〜15%の価値のあるステーキングRPLポジションに対して最大APYを獲得します。 借入ETHの15%を超えるRPLステークは、さらなる報酬を獲得しますが、限界APYは低下します。

ノードを登録した時点とチェックポイントの間に28日未満が経過している場合、その最初の報酬間隔での報酬はそれを考慮して按分されます。たとえば、間隔の14日目に登録した場合、通常の報酬の50%を受け取ります。

その最初の間隔の後、ノードは後続の間隔に十分長く登録されているため、すべての間隔で完全な報酬を受け取ります。

rocketpool node statusコマンドは、いつでも現在の担保比率を表示します。この担保比率は、コマンドを実行した時点の価格に基づいています。ただし、次の報酬ラウンドでの担保比率を知りたい場合は、次の手順に従ってください。

  • Rocketpool Discordの「random」チャネルで/whenコマンドを実行し、次の報酬期間が始まるまでに残っている時間を確認します。
  • oDAOは19.2時間ごと(つまり、ミスされたブロックを除いて約5760ブロック* 12秒)に価格スナップショットを取得します。したがって、Etherscanでo DAO価格送信コントラクトを確認すると、上記の箇条書きで述べた時間の19.2時間前に価格スナップショットが取得されたかどうかがわかります。その場合、価格スナップショットは取得されています。そうでない場合は、まだ行われておらず、oDAOの価格送信の最後のラウンドを見て19.2時間を追加することで、いつ発生するかを推定できます。
  • 次の報酬ラウンドのoDAOによってスナップショットとして取得されたRPL/ETH価格比率を確認するには、Etherscanでo DAO価格送信コントラクトを確認します(Rocketpool Discordの「random」チャネルで/get_address_of_contract contract:rocketNetworkPricesコマンドを実行して取得できます)。その後、oDAOメンバーによって送信されたトランザクションの1つ以上を開きます。
  • 下にスクロールして、「More Details」セクションで**「+ Click to show more」をクリックし、次に「Decode Input Data」**をクリックします。
  • Input Dataボックスに表示されるRPL価格(wei単位で表示)を10^18で割って(ETH単位に変換)、ステーキングされたRPLの数を掛けたものは、運営する各タイプのminipoolの数に>= 1.6 ETH(16 ETH minipoolの場合)および>= 2.4 ETH(LEB8の場合)を掛けたものである必要があります。
  • 前のポイントで説明されているように、担保比率が必要な量を下回っている場合は、oDAOが最後の価格スナップショットを取得した時刻(上記の箇条書き3を参照)と次の報酬ラウンドが始まる時刻(上記の箇条書き1と2を参照)の間にRPLを追加でステーキングして、ノードを>=10%の担保比率に戻すことができます。
  • Etherscanでo DAO価格送信を確認する代わりに、Rocketpool discordの「events」チャネルに注目し、次の報酬期間が始まる前の最後の19.2時間以内にRocket WatchボットからのRPL Price Updateメッセージ(以下の例を参照)を探すこともできます。

Smoothing Pool ETH報酬

RPL報酬とともに、Smoothing Poolの全ETH残高が報酬チェックポイント中に分配されます。 Smoothing Poolの報酬残高全体のうち、プールステーカーに対応する割合(16 ETH minipoolの場合は50%、LEB8の場合は75%)から、それぞれのノード手数料を差し引いた額がrETHコントラクトに送信されます。そこで、1)終了したいプールステーカーからETHのために焼却されるか、2)より多くのminipoolを作成するために使用されます。 残りの部分は、対象となるノードオペレーターの間で分配されます。

間隔の一部の時間だけでも、その間隔でSmoothing Poolにオプトインしているノードは、Smoothing Poolの総残高の一部を受け取る資格があります。 残高は報酬チェックポイントでスナップショットされ、Oracle DAOは各対象ノードの部分を決定します。 部分は次の要因によって決定されます。

  • この間隔でSmoothing Poolにいた時間
  • 各minipoolのBeacon Chainでのアテステーションパフォーマンス
  • 各minipoolの手数料

詳細については、上記にリンクされているresearchリポジトリを参照して、報酬の計算方法の完全な内訳を確認してください。

(オプション)報酬ツリーの生成

新しい報酬チェックポイントに達すると、Oracle DAOはその間隔の報酬ツリーの構築を開始します。 このツリーの構築には現在約2時間かかり、ツリーが構築されて送信されるまで、その間隔の報酬は請求できません。 利用可能になると、ノードは自動的にこのファイルをダウンロードし、その間隔の報酬を確認して請求できるようになります。

Oracle DAOから事前に構築されたツリーをダウンロードする代わりに、自分でツリーを生成したい場合は、それができます。

  • rocketpool service config TUIに入ります。
  • Smartnode and TX Feesセクションに移動します。
  • Rewards Tree ModeDownloadからGenerateに変更します。
  • プライマリのExecution clientがアーカイブノードでない場合は、Archive-Mode EC URLボックスに別のアーカイブノードのURLを追加できます。
    • これは履歴報酬ツリーを生成するために必要です。
    • Archive ECはツリー生成にのみ使用されます。他のSmartnodeの職務には使用されません。
    • InfuraAlchemyはアーカイブノードアクセスを提供しています。無料ティアは通常、ツリー生成を処理するのに十分ではないため、有料ティアのいずれかが必要になることに注意してください。

これで、SmartnodeはOracle DAOから完全に独立してツリーを構築し、Execution clientとConsensus clientによって提供されるデータのみを使用します。 rocketpool service logs watchtowerを使用して、報酬間隔チェックポイント中にそれを確認できます。

以前の間隔から過去のツリーを再構築したい場合は、次のコマンドを使用して実行できます。

rocketpool network generate-rewards-tree

プロンプトに従って、rocketpool service logs watchtowerを使用して進行状況を確認します。

報酬の請求

保留中の未請求報酬を確認するには、次のコマンドを実行します。

rocketpool node claim-rewards

間隔が経過して報酬が蓄積されると、出力は次のようになります。

ここでは、各間隔で獲得した報酬の数を迅速に確認し、請求したいものを決定できます。

この請求中に再ステーキングしたい量を指定することもできます。

これにより、RPL報酬を1つのトランザクションで複利化でき、ガスコストが節約されます。

プロンプトに従って、ノードウォレットに請求のガスコストを支払うのに十分なETHがあることを確認したら、完了です。 報酬は引き出しアドレスに送信されます。

ヒント

既に請求したものを含む、ノードの総報酬を確認するには、次のコマンドを使用します。

rocketpool node rewards

これにより、これまでに請求したRPLとETHの量と、まだ未請求の量の内訳が提供されます。

=== ETH ===
You have earned 8.1935 ETH from the Beacon Chain (including your commissions) so far.
You have claimed 0.0634 ETH from the Smoothing Pool.
You still have 3.4788 ETH in unclaimed Smoothing Pool rewards.

=== RPL ===
The current rewards cycle started on 27 Sep 22 21:26 EDT.
It will end on 30 Sep 22 21:26 EDT (20h35m17s from now).
You currently have 675.616380 unclaimed RPL from staking rewards.

Your estimated RPL staking rewards for this cycle: 36.851544 RPL (this may change based on network activity).
Based on your current total stake of 6615.797278 RPL, this is approximately 67.77% APR.
Your node has received 208.551820 RPL staking rewards in total.

You may claim these rewards at any time. You no longer need to claim them within this interval.

Fee Distributorでのexecution-Layer報酬

Smoothing Poolにオプトインしていない場合、ブロック提案からのExecution-layer部分の報酬(トランザクション手数料とMEVを含む)は、代わりにノードのFee Distributorコントラクトに送信されます。

Fee Distributorの残高を確認するには、https://etherscan.ioなどのチェーンエクスプローラーを使用するか、単にrocketpool node statusを実行します。Fee Distributor and Smoothing Poolというセクションがあり、それが表示されます。

=== Fee Distributor and Smoothing Pool ===
The node is not opted into the Smoothing Pool.
To learn more about the Smoothing Pool, please visit /ja/legacy/redstone/whats-new.html#smoothing-pool.
The node's fee distributor 0xA0bfbFC582f5814585f8455Ed6D7B620eA9a9EE4 has a balance of 1.143598 ETH.

残高の分配

Fee Distributorの残高にアクセスするには、それを分配します(したがって、名前はFee Distributorです)。 これにより、報酬のあなたの分(ノードの平均minipool手数料に基づいて)が計算され、ノードの引き出しアドレスに送信されます。残りはステーキングプールに送信されます。

分配はいつでも実行できます。 残高に座って蓄積させることを選択することも、定期的に分配することもできます。

残高を分配するには、次のコマンドを実行します。

rocketpool node distribute-fees

これにより、あなたに行く量とステーキングプールに行く量が表示されます。

Your node's average commission is 15.00%.
Your fee distributor's balance of 1.143599 ETH will be distributed as follows:
 Your withdrawal address will receive 0.657569 ETH.
 rETH pool stakers will receive 0.486030 ETH.

希望するガス価格を確認して、トランザクションを送信するだけです。 完了すると、報酬のあなたの部分がノードの引き出しアドレスで利用可能になります。