SolanaのTPS計測ツール

Data

概要

本リポジトリ「solana-count-tps」は、Solanaブロックチェーンのパフォーマンス指標の一つであるTPS(Transactions Per Second:秒間トランザクション数)を計測するツールです。Rust言語で実装されており、指定した過去の時間範囲に遡ってブロックデータを取得し、その中のトランザクション数を元に平均TPSを算出します。Voteトランザクションは計測対象から除外されているため、純粋な取引処理能力の把握が可能です。Solanaの処理効率やネットワーク負荷の分析に役立つほか、ブロックチェーンの研究や開発におけるベースラインの測定にも活用できます。

GitHub

リポジトリの統計情報

  • スター数: 1
  • フォーク数: 0
  • ウォッチャー数: 1
  • コミット数: 7
  • ファイル数: 7
  • メインの言語: Rust

主な特徴

  • Solanaブロックチェーンのトランザクション数を過去の一定期間で計測可能
  • Voteトランザクションを除外し、実際の取引トランザクションに限定したTPS算出
  • Rustで実装されており、高速かつ安全な処理を実現
  • シンプルなコマンドラインで実行可能、設定も.envファイルで管理

技術的なポイント

本プロジェクトはSolanaのRPC APIを介してブロック情報を取得し、各ブロック内のトランザクション数を集計することで平均TPSを算出します。Rust言語の特徴を活かして堅牢かつ効率的な処理を実現している点が特徴です。Voteトランザクションを除外するためのフィルタリング処理を組み込むことで、ネットワークの本質的な処理能力の測定にフォーカスしています。

具体的には、RPCのgetBlockgetBlocks等のエンドポイントを利用し、指定した時間範囲内のブロック番号リストを取得します。その後、各ブロックの詳細情報をフェッチし、トランザクションの種類を判別。VoteトランザクションはSolanaのコンセンサス機構に関わる特殊なトランザクションであり、実際のユーザー取引とは異なるため除外しています。

Rustの非同期処理(async/await)を活用し、複数のブロック情報を並列で取得することで高速化が図られています。また、環境変数管理のために.envファイルを用意し、RPCエンドポイントや計測時間範囲などを柔軟に設定可能。Cargoによる依存管理とビルド設定も整っており、Rust開発者にとって扱いやすい構成です。

さらに、READMEと連携したブログ記事ではコードの解説や動作原理の説明が詳しくされており、SolanaのTPS計測に興味がある技術者にとって学習リソースとしても価値があります。Rustによるブロックチェーンデータ分析の入門例としても最適です。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .env: 環境変数設定ファイル。RPCエンドポイントや計測対象の時間などを指定。
  • .gitignore: Git管理から除外するファイルの指定。
  • .vscode/: Visual Studio Codeの設定ディレクトリ。
  • Cargo.lock: Rustの依存関係ロックファイル。
  • Cargo.toml: Rustのプロジェクト設定ファイル。依存クレートやビルド設定を記述。
  • src/main.rs: メインのソースコード。ブロック取得、トランザクション集計、TPS計算のロジックを実装。
  • README.md: プロジェクトの説明と実行方法。

まとめ

SolanaのTPS計測をシンプルかつ効率的に行えるRust製ツール。

リポジトリ情報: