はじめに
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 オプションを見つけることができます。
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として選択してください。
slv rpc init
? Select Solana Network (mainnet)
testnet
devnet
❯ mainnet
次に、Solanaノード対応サーバーがあるかどうかを確認します。
? 🛡️ Do you have a Solana Node Compatible Server? (yes)
❯ yes
no
このチュートリアルでは、yesを選択することを前提としています。
サーバーユーザーとIPアドレスの設定
サーバーユーザー、IPアドレス、RSAキーパスを設定します。
? 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 で実測値を計測することで、最適なリージョンを選択できます。
🔍 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
アイデンティティキーペアの生成
アイデンティティキーペアを持っていない場合は、新しく生成できます。
? 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のバージョンを選択します。
? Select Solana CLI (jito)
agave
❯ jito
firedancer-agave
firedancer-jito
RPCタイプの選択
RPCタイプを選択します。
? Select an RPC type
❯ Geyser gRPC
Index RPC
SendTx RPC
Index RPC + gRPC
このチュートリアルでは、Geyser gRPCを選択します。
設定の確認
最後に、設定を確認します。
✔︎ 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ノードのデプロイ
設定を確認したら、デプロイを開始します。
slv rpc deploy -n mainnet -p p3tnYqjciWz8DnjApUVDPWTEhdzdX6qvqTaRCrckSLV
完了です!Solana RPCノードが正常にデプロイされました。
Solanaネットワークとの同期には時間がかかります。
デバッグ・モニタリング
デプロイ後、以下のコマンドでSolana RPCノードの状態を確認できます:
ssh solv@<your-server-ip>
solv m
solv は agave-validator -l /mnt/ledger のエイリアスです。
この設定はRPCノードデプロイ時に ~/.profile に追加されます。
SLV RPCコマンド
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