Solana SWQoS エンドポイント ドキュメント

SWQoS エンドポイントとは

ERPC が提供する SWQoS エンドポイント は、ステーク接続を持つユーザーが専有レーンでトランザクションを送信できる高性能 RPC サービスです。
共有プランでも専有プランでも利用可能で、トランザクションをより速く、より確実に届けることができます。
エンドポイントは、ERPC Webダッシュボード 上で elSOL 保有を登録することで入手できます。

SWQoS とは

SWQoS(Stake weighted Quality of Service)は、ステーク接続を持つバリデータを優先する通信制御 です。
リーダーは帯域の約 80% を優先帯域20% を非優先帯域 に割り当てます。
ステーク接続を持つ通信は優先帯域を利用できる一方で、非優先帯域にも同時に送信されるため、非優先帯域のみに依存する通信と比べて、実効的な到達余地が大きくなります
この制御は Priority fee の評価より前の段階(リーダー到達前の通信受け入れ) で適用されるため、まず SWQoS によって優先レーンへ到達できるかどうかが、後段の高速処理に影響します。

Priority fee との関係

Priority fee は重要ですが、適用されるのは SWQoS によってリーダーへ到達した後の段階 です。
SWQoS 優先レーンに入れない場合、Priority fee の効果は限定的になりやすく、到達性そのものを改善することは困難になります。
最適な運用には、SWQoS による到達性の確保と Priority fee の設定を組み合わせる ことが効果的です。

コスト構造の転換

従来の送信サービスでは、Tip(チップ)を添付してトランザクションを送る必要がありました。
ERPC の SWQoS エンドポイントでは Tip を送る必要はなく、代わりに elSOL の保有 によって優先帯域を利用できます。
elSOL は Solana の Liquid Staking Token(LST) であり、SOL をステークすることで発行されます。
elSOL の価値はステーク報酬を反映して SOL に対して増加していき、1:1 では固定されません。
たとえば 1 elSOL を保有し続けると、時間とともに「1 elSOL = 1.1 SOL」「1 elSOL = 1.2 SOL」と増えていきます。
elSOL はアンステーク手続きを通じて SOL へ戻すことができ、ステーク報酬を反映した価値での清算が行われます。
elSOL のステーク先は ERPC に接続されたバリデータであり、保有量が増えるほど ERPC 全体の SWQoS BandWidth が拡張されます。
elSOL ホルダーは自らの保有によってネットワーク強化に貢献し、その対価として専有レーンを利用できます。

帯域割当(TPS の仕組み)

共有 SWQoS エンドポイントでは、利用可能な TPS は elSOL 保有数 ÷ 4.2 で算出されます(端数切り捨て)。
たとえば 10 elSOL を保有している場合、2 TPS が付与されます。
実際の上限は「契約プランの最大 TPS」と「elSOL に基づく TPS」の小さい方が採用されます。
Developer プラン以上の契約が前提であり、Bundle プランも対象に含まれます。

Connection Keep Warming(Keep Alive)

ERPC の Solana SWQoS エンドポイントでは、/ping に GET リクエストを送ることで、クライアントから ERPC の SWQoS エンドポイントへの HTTPS 接続を維持 できます。
トランザクションを送信する際、最初の通信では HTTPS 接続および TLS セッション確立にわずかな時間がかかります。
あらかじめ /ping を送ってこの接続を維持しておくことで、実際にトランザクションを送る瞬間に初期の接続遅延を挟まず、すぐ送信処理に入る ことができます。
普段は送信していなくても、必要なタイミングで速く送りたい構成では、事前に Keep Warming を行っておくことで送信開始時の挙動が安定します。

Ping エンドポイント

Keep Warming は、SWQoS エンドポイントの /ping に GET リクエストを送信することで行います。
このリクエストはトランザクション処理を行わず、クライアントと ERPC 間の通信経路における接続状態のみを維持します。

エンドポイント形式(HTTPS)

text
https://<your-swqos-endpoint-domain>/ping
<your-swqos-endpoint-domain> には、ERPC から提供されている SWQoS 専用ドメインを指定してください。

利用例

定期的に接続を温める例(JavaScript)

typescript
async function keepWarm(endpoint: string) {
  try {
    await fetch(`${endpoint}/ping`, { method: 'GET' })
  } catch {
    // 失敗時は無視
  }
}

setInterval(() => {
  keepWarm('https://<your-swqos-endpoint-domain>')
}, 30000)
一定間隔で /ping を送っておくことで、トランザクション送信時にすぐ処理へ入れる状態 を維持できます。

注意点

/ping は TPS 消費や elSOL に基づく帯域計算には影響しません ・トランザクションの代わりにはなりません ・クライアントと ERPC 間の接続を維持するための補助的なリクエストです
SWQoS(ステーク接続)と Priority fee の設計はそのままに、送信開始時の遅延を抑えるための仕組み として Keep Warming を利用してください。