Solana メインネット RPC - クイックスタート

はじめに

Solana メインネット RPC のデプロイには、SLV コマンドラインツールを使用します。 このクイックスタートガイドでは、SLV コマンドラインツールを使用して Geyser Yellowプラグインを備えたSolanaメインネットRPCをデプロイする方法を説明します。
サーバーには Ubuntu 24.04 LTS がクリーンインストールされている必要があります。

ベアメタルサーバーの準備

SolanaのクライアントをVPSや仮想マシン(VM)上で立ち上げることも可能ですが、パフォーマンスを十分に発揮することは難しく、安定稼働は期待できません。特にRPCノードやバリデーターは高負荷環境となるため、まず適切なサーバー環境を用意することが重要です。
Solana公式でもベアメタルサーバーの利用が推奨されています。
推奨されるRPCノードのスペックは以下の通りです。
  • 最低要件: 24コアCPU、512GB RAM以上
  • インデックスノード推奨要件: 32コアCPU、1152GB RAM以上
CPUのクロックスピードはSolanaノードにとって特に重要です。公式ドキュメントに記載されているように、単にコア数を増やすだけでなく、高いクロックスピードを持つ最新世代のCPUを導入することで、パフォーマンスを大幅に最大化できます。最近では、Firedancerも32コアCPUの推奨を開始しており、大量のRPCリクエスト処理を考慮すると、特に32コアを活用することが最適です。
SLV Metalでは、予算に応じて最高のパフォーマンスを引き出せるベアメタルサーバーを提供しています。
slv metal list コマンドを実行すると、Solana RPCノード用に特別に設計された RPC オプションを見つけることができます。
bash
slv metal list ? 🛡️ Select SLV BareMetal Type (APP) 📦 APP - For Trade Bot,Testnet Validator, DApp and More! 🚀 MV - For Solana Mainnet Validator ❯ 🛡️⚡️ RPC - For Solana RPC Node
まだベアメタルサーバーをセットアップしていない場合は、ベアメタルサーバーセットアップガイドに従ってください。
さらに、以下のリソースを参照してください:

Solana RPCノードのデプロイ

まず、Solana RPCの設定を初期化します。 希望するSolanaネットワークをnetworkとして選択してください。
bash
slv rpc init ? Select Solana Network (mainnet) testnet devnet ❯ mainnet
次に、Solanaノード対応サーバーがあるかどうかを確認します。
bash
? 🛡️ Do you have a Solana Node Compatible Server? (yes) yes no
このチュートリアルでは、yesを選択することを前提としています。

サーバーユーザーとIPアドレスの設定

サーバーユーザー、IPアドレス、RSAキーパスを設定します。
bash
? What's the user for the server? (root) › root ? Enter the server IP address › x.x.x.x ? What's the path to your RSA key? (~/.ssh/id_rsa)

最寄りのリージョンを自動検出

次に、設定するノードから各ブロックエンジンに対して Ping を実行し、最も近いリージョンを自動的に検出します。 Ping で実測値を計測することで、最適なリージョンを選択できます。
bash
🔍 Checking SSH connection... ✔︎ SSH connection succeeded 📍 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)... ✅ Singapore: 0.291 ms ✅ London: 154.071 ms ✅ Dublin: 167.267 ms ✅ Frankfurt: 149.081 ms ✅ Amsterdam: 154.501 ms ✅ New York: 228.624 ms ✅ Salt Lake City: 278.016 ms ✅ Tokyo: 376.816 ms 🎯 Nearest region: 🇸🇬 Singapore Latency: 0.291 ms Block Engine: https://singapore.mainnet.block-engine.jito.wtf Shred Receiver: 202.8.11.224:1002 Relayer: http://singapore.mainnet.relayer.jito.wtf:8100 NTP Server: ntp.singapore.jito.wtf

アイデンティティキーペアの生成

アイデンティティキーペアを持っていない場合は、新しく生成できます。
bash
? Do you want to create a new identity key now? (Y/n) › Yes 🔑 Generating new identity key... ✨ Generated Key: p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV ✨ Moved Key to: ~/.slv/keys/p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV.json

Solana CLIの選択

Solana CLIのバージョンを選択します。
bash
? Select Solana CLI (jito) agave ❯ jito firedancer-agave firedancer-jito

RPCタイプの選択

RPCタイプを選択します。
bash
? Select an RPC type ❯ Geyser gRPC Index RPC SendTx RPC Index RPC + gRPC
このチュートリアルでは、Geyser gRPCを選択します。

設定の確認

最後に、設定を確認します。
bash
✔︎ Success ✔ Inventory updated to ~/.slv/inventory.mainnet.rpcs.yml ✔ Successfully created solv user on p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV ✔︎ mainnet_rpcs inventory file has been saved to ~/.slv/inventory.mainnet.rpcs.yml Now you can deploy with: $ slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
その後、ベアメタルサーバーに solv ユーザーが作成され、 Solana RPCの設定が ~/.slv/inventory.mainnet.rpcs.yml に保存されます。

Solana RPCノードのデプロイ

設定を確認したら、デプロイを開始します。
bash
slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
bash
Your mainnet RPC Nodes Settings: ┌──────────────┬─────────────────────────────────────────────┐ │ Identity Key │ p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV │ ├──────────────┼─────────────────────────────────────────────┤ │ Name │ p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV │ ├──────────────┼─────────────────────────────────────────────┤ │ IP │ x.x.x.x. │ ├──────────────┼─────────────────────────────────────────────┤ │ Region │ singapore │ ├──────────────┼─────────────────────────────────────────────┤ │ RPC Type │ Geyser gRPC │ ├──────────────┼─────────────────────────────────────────────┤ │ Version │ 3.0.7-jito │ └──────────────┴─────────────────────────────────────────────┘ . . . 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 RPCノードが正常にデプロイされました。 Solanaネットワークとの同期には時間がかかります。

デバッグ・モニタリング

デプロイ後、以下のコマンドでSolana RPCノードの状態を確認できます:
bash
ssh solv@<your-server-ip> solv m
solvagave-validator -l /mnt/ledger のエイリアスです。 この設定はRPCノードデプロイ時に ~/.profile に追加されます。

SLV RPCコマンド

bash
Usage: slv rpc Version: 0.9.700 Description: 🛠️ Manage Solana RPC Nodes 🛠️ Options: -h, --help - Show this help. Commands: init - 🚀 Initialize a new RPC node configuration deploy - 📦 Deploy RPC Nodes list - 📋 List RPC Nodes 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 RPC Startup Config update:geyser - ⚡️ Update Geyser Version start - 🟢 Start RPC stop - 🔴 Stop RPC restart - ♻️ Restart RPC cleanup - 🧹 Cleanup RPC - Remove Ledger/Snapshot Unnecessary Files get:snapshot - 💾 Download Snapshot with aria2c update:allowed-ips - 🛡️ Update allowed IPs for mainnet RPC nodes