Solana メインネット バリデータ - クイックスタート
はじめに
Solana メインネット バリデータのデプロイには、SLV コマンドラインツールを使用します。
このクイックスタートではメインネットバリデーターのスペアを起動し、デプロイする方法を説明します。
サーバーには Ubuntu 24.04 LTS がクリーンインストールされている必要があります。
ベアメタルサーバーの準備
SolanaのノードをVPSや仮想マシン(VM)で立ち上げることも可能ですが、十分なパフォーマンスや安定稼働を期待するのは難しいです。
Solana公式でもベアメタルサーバーの利用を推奨しています。
推奨されるサーバースペックは以下の通りです。
- Agave推奨要件:24コアCPU、256GB RAM以上
- Firedancer推奨要件:32コアCPU、512GB RAM以上
コストパフォーマンスの観点では、Agave を選択して 24コアCPU、384GB RAMのサーバー利用が最適です。(このコストパフォーマンスは、ギリギリバリデータを走らせることができるレベルではなく、安定した稼働と安定した収益を得るためのスペックです。)
SLV Metalではこの構成を月額580ユーロから提供しています。
slv v init コマンドを実行すると、ベアメタルサーバーがセットアップ済みかどうかを確認する質問が表示されます。➜ slv v init ? Select Solana Network (mainnet) › mainnet ? 🛡️ Do you have a Solana Node Compatible Server? (no) ❯ yes no
このチュートリアルでは
yes を選択した場合を前提として進めます。まだベアメタルサーバーを準備していない場合は、こちらのベアメタルサーバー導入ガイドを参照してセットアップしてください。
また、以下の記事もご参考ください。
Solana メインネット Firedancer Jito バリデーターのデプロイ
新しい SLV デプロイでは、常に unstaked-keypair.json がアイデンティティキーとして使用されます。
これは二重投票などを防ぐためのベストプラクティスです。
そのため、デプロイ後に
slv v set:identity を使用して認証済みのアイデンティティキーをセットしてください。メインネットバリデーター運用の場合、ほとんどの場合
slv v switch を使用してアイデンティティキーを変更します。
ノーダウンタイムマイグレーションについては、こちらのガイドを参照してください。Solana ネットワークを選択
デプロイしたい Solana ネットワークを選択します。
slv v init ? Select Solana Network (mainnet) testnet ❯ mainnet
デフォルトのユーザー名を入力
通常、デフォルトのユーザー名は
ubuntu または root であることが多いです。? What's the user for the server? (ubuntu) › ubuntu
サーバーの IP アドレスを入力
サーバーの IP アドレスを入力します。
? What's the IP address of the server? ›
SSH 用の RSA キーを設定
※ ご自身の RSA キーのパスを設定してください。デフォルトのパスは
~/.ssh/id_rsa です。? What's the path to your RSA key? (~/.ssh/id_rsa) › ~/.ssh/id_rsa 🔍 Checking SSH connection... ✔︎ SSH connection succeeded
その後、SLV がサーバーへの接続をチェックします。接続が成功すると、次のステップへ進みます。
Solana バリデータタイプの選択
Solana バリデータのタイプを選択します。
? Select Validator Type (firedancer-jito) agave jito firedancer-agave ❯ firedancer-jito
コミッションレートの設定
バリデータのコミッションレートを設定します。
※ 1000の場合は 10% になります。
? Enter Commission BPS (Max 1000 = 10%) (1000)
Solana バリデータのアイデンティティキーを生成または設定
新しいアイデンティティキーを生成するか、既存のアイデンティティキーを設定できます。
ここでは既存のアイデンティティキーを
epics-sub という名前で設定する例を示します。? Do you want to create a new identity key now? (Y/n) › No ? Please Enter Your Identity Public Key › KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM ? Enter Inventory Name (KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM) › epics-sub ⚠️ Please place your identity key in ~/.slv/keys/KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM.json . . ✔︎ Success ✔ Inventory updated to ~/.slv/inventory.yml ✔ Successfully created solv user on x.x.x.x
アイデンティティキーを
~/.slv/keys/<your-pubkey>.json に配置してください。最寄りのリージョンを自動検出
次に、設定するノードから各ブロックエンジンに対して Ping を実行し、最も近いリージョンを自動的に検出します。 Ping で実測値を計測することで、最適なリージョンを選択できます。
✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml 📍 Measuring latencies from x.x.x.x to mainnet regions... Pinging Amsterdam (amsterdam.mainnet.block-engine.jito.wtf)... Pinging Dublin (dublin.mainnet.block-engine.jito.wtf)... Pinging Frankfurt (frankfurt.mainnet.block-engine.jito.wtf)... Pinging London (london.mainnet.block-engine.jito.wtf)... Pinging New York (ny.mainnet.block-engine.jito.wtf)... Pinging Salt Lake City (slc.mainnet.block-engine.jito.wtf)... Pinging Singapore (singapore.mainnet.block-engine.jito.wtf)... Pinging Tokyo (tokyo.mainnet.block-engine.jito.wtf)... ✅ London: 8.801 ms ✅ Dublin: 12.946 ms ✅ Frankfurt: 5.888 ms ✅ Amsterdam: 0.169 ms ✅ New York: 74.321 ms ✅ Salt Lake City: 115.577 ms ✅ Singapore: 154.200 ms ✅ Tokyo: 229.989 ms 🎯 Nearest region: 🇳🇱 Amsterdam Latency: 0.169 ms Block Engine: https://amsterdam.mainnet.block-engine.jito.wtf Shred Receiver: 74.118.140.240:1002 Relayer: http://amsterdam.mainnet.relayer.jito.wtf:8100 NTP Server: ntp.amsterdam.jito.wtf
Solana バリデータの投票アカウントキーを生成または設定
新しい投票アカウントキーを生成するか、既存の投票アカウントキーを設定できます。
ここでは既存の投票アカウントキーを設定する例を示します。
? Do you want to create a new vote account key now? (Y/n) › No ? Please Enter Your Vote Account Public Key > <your-vote-account>
そしてバリデーターノードの情報は
~/.slv/inventory.mainnet.validators.yml に保存されます。✔︎ Success ✔ Inventory updated to ~/.slv/inventory.mainnet.validators.yml ✔ Successfully created solv user on epics-sub ✔︎ Validator Mainnet Config Saved To ~/.slv/inventory.mainnet.validators.yml Now you can deploy with: $ slv v deploy -n mainnet -p epics-sub
バリデータのデプロイ
設定を確認したら、デプロイを開始します。
slv v deploy -n mainnet -p epics-sub
Your Mainnet Validators Settings: ┌────────────────┬──────────────────────────────────────────────┐ │ Identity Key │ KTMkUG8WCw9FdH44jLMBpc1teGafnYL6SgP4fHHbsNM │ ├────────────────┼──────────────────────────────────────────────┤ │ Vote Key │ EpicsoqLdDP8qRn3wQRKTSKAXbjK9dUgFfNPRQS77MQD │ ├────────────────┼──────────────────────────────────────────────┤ │ Authority Key │ authAccount │ ├────────────────┼──────────────────────────────────────────────┤ │ IP │ x.x.x.x │ ├────────────────┼──────────────────────────────────────────────┤ │ Validator Type │ firedancer-jito │ ├────────────────┼──────────────────────────────────────────────┤ │ Version │ 0.712.30006 │ └────────────────┴──────────────────────────────────────────────┘ ? Do you want to continue? (Y/n) › Yes . . . Successfully Deployed RPC on mainnet ⚡️⚡️⚡️ Enhanced Solana RPC Connection API Key ⚡️⚡️⚡️ We're excited to offer a free API key exclusively for the Validators DAO community 🎉 It's our way of supporting the community and empowering you with fast, reliable connections. To get your Free API key, simply join us through the link below: Validators DAO: `https://discord.gg/X4BgkBHavp` Unlock fast connections and elevate your experience with your very own API key 🚀 You can monitor your Node with the following steps: Log in to your server with SSH: ssh [email protected] Then, run the following command to monitor your node: $ solv m
完了です!Solana バリデータがデプロイされました。Solana ネットワークとの同期には少し時間がかかります。
デバッグ・モニタリング
デプロイ後、Solana RPC ノード内でデバッグとモニタリングを行うことができます。
以下のコマンドを使用して、Solana RPC ノードの状態を確認できます。
$ solv m
solv は agave-validator -l /mnt/ledger のエイリアスです。
RPCノードデプロイ時に この設定が ~/.profile に追加されています。アイデンティティキーの変更
デプロイ後、アンステーク済みのキーを認証済みのアイデンティティキーに変更する必要があります。
slv v set:identity -n mainnet --pubkey epics-sub
このコマンドにより、アイデンティティキーが認証済みのキーに変更されます。
※ノーダウンタイムマイグレーションを行う場合は、こちらのガイドを参照してください。
SLV Validator コマンド
slv validator --help Usage: slv validator Version: 0.9.700 Description: 🛠️ Manage Solana Validator Nodes 🛠️ Options: -h, --help - Show this help. Commands: init - 🚀 Initialize a new validator configuration deploy - 📦 Deploy Validators list - 📋 List validators set:identity - 🪪 Set Validator Identity set:unstaked - 📴 Set Validator Identity to Unstaked Key setup:firedancer - 🔥 Setup/Update Firedancer Validator update:firedancer - 🔄 Update Firedancer Version build:solana-cli - 🛠️ Build Solana CLI from Source install:solana - ➡️ Install Solana CLI Binary update:script - ⚙️ Update Validator Startup Config update:jinja - 🧩 Update Jinja Template start - 🟢 Start Validator stop - 🔴 Stop Validator restart - ♻️ Restart Validator cleanup - 🧹 Cleanup Validator - Remove Ledger/Snapshot Unnecessary Files get:snapshot - 💾 Download Snapshot with aria2c gen:vote-account - 🗳️ Generate Vote Account switch - 🔁 Switch Validator Identity - No DownTime Migration