コンテンツへスキップ

NodeSetの設定方法

公式ドキュメントに更新があるかもしれないので見比べながら実施する。
※サーバーをソロステーキングと併用する想定。

(最終更新2024年10月11日)

目次

NodeSetとは

NodeSetとは、いわば「信頼されたソロステーカーの集まり」です。運営チームはRocket Poolプロトコルから派生しています。

ソロステーカーが集団になることで、安定して分散性の高い(≒セキュリティの高い)ステーキングサービスを提供できるようになります。また、ソロステーカーにとっても、ETHを担保にすることなく収益の機会を増やすことができるようになります。

NodeSetの参加条件

  • ソロステーキングのバリデーターまたはロケットプールのミニプールを少なくとも1つ稼働している。6ヶ月以上稼働していて、直近90日のeffectivenssが95%以上。
  • 運営チームメンバーと顔出しのインタビューを実施する(英語)。インタビューでは自分のサーバーのセットアップを聞かれたり、技術的な質問をされたりする。
  • 内容が非公開なシビルチェックも実施されているらしい。
  • NodeSetのバリデーター稼働後に、effectivenssが閾値を下回ると資格が剥奪されます。

NodeSetが提供するサービス(収益の機会)

NodeSetの参加条件を満たしている人は、任意のサービスに参加することができます。全てに参加する必要はないみたいです。

  • StakeWise V3 Vault
    StakeWiseのVaultをNodeSet運営チームが作成します。NodeSet参加者はVaultのバリデーターを運用します。現在メインネットで稼働中です。
  • Constellation
    Rocket Poolに新たに流動性をもたらす仕組みです。9月下旬にHoleskyテストネットでベータ公開されました。

Hyperdriveの設定手順

HyperdriveとはNodeSetチームが作成した簡単サーバー構築ツールです。ウィザード画面に従うだけで、実行クライアントとコンセンサスクライアントの設定ができます。参加するサービス(Module)もHyperdriveで選択できます。

Ubuntuの初期設定

Hyperdriveのインストール

  • CLIをダウンロードする。最新バージョンのURLは公式Githubから取得する。
    取得後は、SSHに再接続する。
    Constellationを試す場合は、v1.1.0 Beta 1以上をダウンロードしてください。
sudo wget https://github.com/nodeset-org/hyperdrive/releases/download/vX.X.X/hyperdrive-cli-linux-amd64 -O /usr/bin/hyperdrive && sudo chmod +x /usr/bin/hyperdrive
  • Hyperdriveをインストールする。インストール後はSSHに再接続する。
hyperdrive service install
  • Hyperdriveの設定ウィザードを起動する。
hyperdrive service config
  • 設定ウィザードは以下を設定する。
    • ネットワークはEthereum Mainnetを選択
    • Client ModeはExternally Managedを選択
    • 実行クライアントはNethermindを選択し、Nethermindの接続先HTTPを入力(例:http://192.168.11.77:8545
    • コンセンサスクライアントはLighthouseを選択し、Lighthouseの接続先HTTPを入力(例:http://192.168.11.77:5052
    • Fallback ClientはNoを選択(将来的にはNodeSetとRescue Nodeが提携してRescue NodeがFallback Clientとして使えるようになるらしい)
    • Stakewiseにチェックを入れる
    • Metricsは不要
    • MEV-BoostはExternally Managedを選択し、MEV-Boostの接続先HTTPを入力(例:http://192.168.11.77:18550
  • 実行クライアントとコンセンサスクライアントの同期状態を確認する。
hyperdrive service sync
  • Hyperdriveのコンセンサスクライアントのバージョンを確認し、ビーコンノードと異なる場合はビーコンノードの方を揃える。
hyperdrive service status
/usr/local/bin/lighthouse --version
  • ログを確認して変なエラーが出てないか確認する。
hyperdrive service logs

ウォレットの設定

  • 初期設定時は、設定ウィザードのプロンプトでウォレットを作成するか聞かれるので作成する。
  • このウォレットはStakeWiseやConstellationなど、Hyperdrive上で動くサービス全てで利用されます。サービスごとにウォレットを作る必要はありません。
  • 作成済みのウォレットを復旧する場合は
hyperdrive wallet recover
  • パスワードをサーバーに保存するか聞かれる。利便性を考えて保存するようにする。
  • 初期設定時は、NodeSetにValidator Keyを送信するかと、NodeをNodeSetに登録するかを聞かれるが、まだ実施できないので「No」にする。

NodeSet Dashboardアカウントの作成

  • NodeSetのダッシュボードをブラウザで開く。
  • MetaMaskはホットウォレットで開いておき(ハードウェアウォレットでもノードのウォレットでもない)、Sign-In with Ethereumをする。
  • サインイン後はメールアドレスを入力し(インタビュー時に使用したメールアドレス)、メールで届く認証コードを入力する。
  • メール認証後は、”You have not yet been added to any projects, but please check back soon.”と出たので、DiscordでNickにメールアドレスを伝えて確認依頼をしてもらう必要があった。

ウォレットにガス代を送金する

  • Hyperdriveのウォレットを確認する。
hyperdrive wallet status
  • もしHyperdriveのウォレットからの送金を試したければ。
hyperdrive wallet send 0.1 eth <送信先アドレス>

Hyperdriveのアップデート手順

  • Hyperdriveを止める。
hyperdrive service stop
  • CLIをダウンロードする。最新バージョンのURLは公式Githubから取得する。
sudo wget https://github.com/nodeset-org/hyperdrive/releases/download/v1.0.0/hyperdrive-cli-linux-amd64 -O /usr/bin/hyperdrive
  • Hyperdriveをインストールする。
hyperdrive service install -d
  • Hyperdriveの設定更新内容を確認する。
hyperdrive service config
  • Hyperdriveのコンセンサスクライアントのバージョンを確認し、ビーコンノードと異なる場合はビーコンノードの方を揃える。
hyperdrive service status
/usr/local/bin/lighthouse --version
  • ログを確認して変なエラーが出てないか確認する。
hyperdrive service logs

StakeWise Moduleの設定手順

StakeWiseのVaultをNodeSet運営チームが作成し、NodeSet参加者はバリデーターのKeyを作成してVaultに登録します。Vaultに資金が入ってきたらバリデーターに資金が割り当てられ、バリデーターの運用が開始されます。

NodeSet DashboardでStakeWiseにノードアドレスの登録

  • NodeSet Dashboardログイン後のメニューからまたはここでHyperdriveのウォレットアドレスをホワイトリストに追加する。
  • バリデーターのKeyを生成する。
hyperdrive stakewise wallet generate-keys
  • 自分のノードがNodeSetに登録されているか確認する。登録されていなければWould you like to register your node now?と聞かれるので登録する。登録するときのメールアドレスを聞かれる。
hyperdrive stakewise nodeset registration-status
  • 作成したKeyをNodeSetに送信する。
hyperdrive stakewise nodeset upload-deposit-data

自分のバリデーターの稼働状況を確認する

hyperdrive stakewise status

報酬を受け取る(まだ自分のバリデーターがStakeWiseのVaultに採用されてないので試せていない)

  • 報酬分配コントラクトに自分のバリデーターが登録されたら実施できる。
hyperdrive stakewise wallet claim-rewards

バリデーターを停止させる

  • Exit待ちが発生する。Exitしても最後の報酬を出勤できるまでに時差がある。
hyperdrive stakewise validator exit

Constellationの設定手順

ロケットプールに預けられた資金をNodeSetのバリデーターが代わりに運用します。NodeSetは”信頼された”ノード運用者の集まりなので、ロケットプール本家のような16ETHまたは8ETHの担保は必要ありません。詳しい仕組みは公式ドキュメントを参照してください。

Hyperdriveのウォレットに1.1ETH以上を送金する

  • 1ETHは一時的な担保に使われます。0.1ETHはガス代用です。
hyperdrive wallet status

Constellationにノードアドレスを登録する

  • オンチェーンでの登録なのでガス代を消費します。
hyperdrive cs node register
  • 登録されたか確認する。
hyperdrive cs node status

ミニプールを作成する

  • 作成時に1ETHを一時的な担保として提出しますが、ミニプールのバリデーターが無事に稼働したら自動的に戻ってきます。
hyperdrive cs minipool create

※ミニプールの個数上限に達していない人同士で早いもの勝ちなので、ミニプール作成を自動化するスクリプトを書きました。

  • ミニプールの作成が終わると、最初はInitializedステータスになります。資金が配分されたらPrelaunchステータスになります。そして12時間後にStakingステータスになります。
hyperdrive cs minipool status

2個目以降のミニプールを作成する

  • ミニプールは1つずつしか作成することができません。2個目以降のミニプールを作成するためには、1個目のミニプールのExit messageに署名しておく必要があります。Exit messageはミニプールがビーコンチェーン上で稼働してインデックスが割り振られないと署名することができません。時期が来たら自動的にHyperdriveがExit messageに署名してくれます。
  • 2個目以降のミニプールも作成時に1ETHを一時的な担保として提出します。
hyperdrive cs minipool create

バリデーターのログを確認する

  • ミニプールのバリデーターが稼働されたら、ログを確認してAttenstationが正常に処理できているか確認します。
hyperdrive service logs cs_vc

バリデーターを退出させる

  • バリデーターのExitメッセージがビーコンチェーンに送信され、時間が経つと退出されます。
hyperdrive cs minipool exit