Koraノードオペレーターとは?
Koraノードオペレーターとして、ユーザーのSolanaトランザクション手数料を負担するペイマスターサービスを運用します。ノードはSPLトークンによる支払いを受け取り、保有するSOLを使用して実際のネットワーク手数料を支払うことで、アプリケーションにおけるガスレストランザクションを実現します。
Koraノードを運用する理由
- 優れたUX:ユーザーはSOLを必要とせずに取引可能(スムーズなオンボーディング、リテンション向上など)
- 収益源:ビジネスに適したトークン(USDC、BONKなど)で手数料を徴収
目次
クイックスタート
まずローカルで試したいですか?数分でローカルKoraノードを立ち上げられます: → **ローカルクイックスタートガイド
コアコンセプト
Koraノードオペレーターとして、ユーザーのガスレストランザクションを実現する安全なペイマスターサービスを運用する責任があります。ノードには4つの主要な役割があります:
1. トランザクションの検証
kora.tomlを使用して、ビジネス要件を満たすトランザクションのみを受け入れるようノードを設定します:
- トークン許可リスト:支払いとして受け入れるSPLトークンを定義(SPLとToken-2022の両方をサポート)
- プログラム許可リスト:ユーザーが操作できるSolanaプログラムをホワイトリスト化
- トランザクション制限:支払う最大手数料と署名数の上限を設定
- アカウントブロックリスト:問題のあるアドレスとのやり取りを防止
- 価格オラクル:手数料計算のためにJupiterまたはモック価格設定を構成
- 支払いトークン:支払いとして受け入れるトークンの種類を指定
- 手数料支払者ポリシー:手数料支払者が実行できる操作(転送、バーン、承認など)を制御
- Token-2022拡張機能:セキュリティ強化のため特定のToken-2022拡張機能をブロック
- キャッシング:Redisキャッシングを有効化してRPC呼び出しを削減しパフォーマンスを向上
- 使用制限:ウォレット単位のトランザクション制限を設定して、悪用を防止し、公平な使用を確保し、または一定の上限まで補助金付きトランザクションでユーザーに報酬を提供
→ 完全なKora.toml設定リファレンス → kora.tomlのサンプル
2. トランザクションへの署名
ノードは手数料支払者としてトランザクションに署名するためのSolana keypairが必要です。本番環境でのデプロイメントでは、Koraは信頼性の向上とアカウントロック分散のためにマルチ署名者設定をサポートしています。署名者のセキュリティのため、鍵のローテーション、アクセス制御、バックアップ、その他の戦略の実装を検討してください。利用可能な署名オプション:
- ローカル秘密鍵:サーバー環境に秘密鍵を直接保存(base58、.jsonファイル、またはu8配列として)
- Turnkey:シンプルな秘密鍵管理。ウォレットを作成し、トランザクションに署名し、オンチェーンアクションを自動化します。
- Privy:簡単な暗号インフラ。ホワイトラベルウォレットを安全に立ち上げ、トランザクションに署名します。
- HashiCorp Vault:機密情報の管理と保護
3. トランザクション手数料の支払い
予想されるトランザクション量のネットワーク手数料をカバーするのに十分なSOLを維持してください:
- 残高監視:SOL残高を追跡し、低残高アラートを設定(Koraは組み込みのPrometheusメトリクスを提供 - 監視を参照)
- 自動化:本番環境向けに自動SOL補充手順を実装
- キャパシティプランニング:予想されるユースケース、ユーザー数などを計画
Koraがどのように手数料を見積もるか、また収益を最大化するためにノードをどのように設定するかを理解することが重要です。詳細については手数料見積もりガイドを参照してください。
4. 運用の監視
ノードのセキュリティ、パフォーマンス、ビジネスメトリクスを継続的に追跡してください:
- セキュリティ監視:異常なパターン、検証の失敗、レート制限違反
- 運用アラート:システムヘルス、残高警告、セキュリティイベント
- 財務追跡:SOLコスト対トークン収益、収益性分析
- 署名者残高監視:署名者の残高を追跡し、低残高アラートを設定
Koraは、Prometheus形式でリアルタイムのパフォーマンスデータを提供するオプションの/metricsエンドポイントを提供します。
5. パフォーマンスの最適化(オプション)
トラフィックの多いデプロイメントでは、Redisキャッシングを有効にすることで、RPC呼び出しを削減し、応答時間を改善できます:
- アカウントキャッシング:設定可能な有効期限(TTL)でSolanaアカウントデータをキャッシュ
- 自動フォールバック:Redisが利用できない場合、直接RPC呼び出しに適切にフォールバック
- キャッシュ管理:重要な操作のための自動期限切れと強制更新機能
Kora CLI
kora-cliクレートは、Koraペイマスターノードを実行するために必要なすべてを提供する本番環境対応のRustバイナリです。グローバルにインストールしたり、コンテナにデプロイしたりできるスタンドアロンの実行可能ファイルとして配布されています。
インストールオプション
グローバルインストール(開発環境に推奨)
cargo install kora-cli
またはソースからビルド(コントリビューションに推奨)
git clone https://github.com/solana-foundation/kora.gitcd korajust install
基本的な使用方法
Kora RPCサーバーは、JSON-RPCエンドポイント(デフォルト:http://localhost:8080)を公開します。`kora rpc`コマンドで起動します:
# Run with specified kora.toml and signers.tomlkora --config path/to/kora.toml rpc start --signers-config path/to/signers.toml# Helpkora rpc --help
Kora CLIの使用方法の詳細については、CLIガイドを参照してください。
アプリケーションは、Kora TS SDKを介してKora RPCサーバーにアクセスできます。
設定
すべてのKora RPCノードは、少なくとも以下の設定が必要です:
- Solana
RPCエンドポイント(
--rpc-urlフラグまたはRPC_URL環境変数で指定)[デフォルト:http://127.0.0.1:8899] - Solana署名者の設定(
--signers-config signers.tomlフラグで指定) - 設定ファイル
kora.toml(--config path/to/kora.tomlフラグで指定)
kora.toml
デプロイする前に、以下を指定するためにkora.tomlを作成して設定する必要があります:
- レート制限と認証
- 支払先アドレス
- RPCメソッドの利用可否
- トランザクション検証ルール
- セキュリティポリシー(SPLトークン、プログラム、アカウント、Token Extensionsなどのホワイトリストまたはブラックリスト)
- 手数料価格設定モデル
- 拡張手数料支払者ポリシー(望ましくない署名者の動作から保護)
- メトリクス収集
- Redisキャッシング設定(オプション)
signers.toml
また、以下を指定するために signers.toml ファイルを作成する必要があります:
- ノードの署名者
- 署名者選択戦略
- 各署名者の設定と適用可能なキー
デプロイメント
ローカルデプロイメント
数分でローカルのKoraサーバーを起動してテストできます: クイックスタートガイド
Docker
サンプルのDockerfileを使用して、任意のコンテナプラットフォームにデプロイできます。docker-compose.ymlファイルには、キャッシュサポート用のRedisが含まれています:
→ サンプルDockerfile → Redisを使用したDocker Compose
プラットフォーム固有のガイド
その他の統合ガイドは近日公開予定
サポートが必要ですか?
- Solana Stack Exchange - 質問したり学習内容を共有したりできます(
koraタグを必ず使用してください) - GitHub Issues - バグを報告したりサポートを受けたりできます
kora rpc --helpを実行すると、利用可能なすべてのフラグと設定オプションが表示されます
Is this page helpful?