---
title: "Solana Geyser gRPC - gRPC レイテンシーテスト"
description: "SLV - Solana Geyser gRPC - gRPC レイテンシーテスト"
canonical: "https://erpc.global/ja/doc/geyser-grpc/test/"
locale: "ja"
---

# Solana Geyser gRPC - gRPC レイテンシーテスト

このガイドでは、Solana Geyser gRPCサーバーのレイテンシーをテストする方法について説明します。

## 前提条件

SLV CLI をインストールしてください:

```bash
curl -fsSL https://storage.slv.dev/slv/install | sh
```

## gRPCレイテンシーテスト

次のコマンドで、Solana Geyser gRPCサーバーのレイテンシーを簡単にテストできます:

```bash
slv check grpc --help
Usage:   slv check grpc
Version: 0.9.0

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
```

Geyser gRPCアクセスがない場合は、[Geyser gRPCクイックスタート](https://erpc.global/ja/doc/geyser-grpc/quickstart/)ガイドを参照してください。

## レイテンシーテストの実行

共有エンドポイントを直接テストするには、次のように自分のエンドポイントを指定して実行してください：

```bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token none
```

実行例：

```bash
➜  ~ slv check grpc --endpoint http://grpc-ams1.erpc.global --token none
Checking gRPC endpoint: http://grpc-ams1.erpc.global
Current latency: 540 ms, slots: 0
Avg latency: 540 ms
Current latency: 962 ms, slots: 1
Avg latency: 751 ms
Current latency: 394 ms, slots: -1
Avg latency: 632 ms
Current latency: 776 ms, slots: 0
Avg latency: 668 ms
Current latency: 1157 ms, slots: 1
Avg latency: 765.8 ms
Current latency: 529 ms, slots: 0
Avg latency: 726.3333333333334 ms
Current latency: 891 ms, slots: 1
Avg latency: 749.8571428571429 ms
Current latency: 249 ms, slots: -1
Avg latency: 687.25 ms
```

設定完了後、Geyser gRPCサーバーのレイテンシー測定が開始されます。

テストを停止するには `Ctrl + C` を押します。

---

## 参考: gRPC レイテンシーの仕組み

gRPC のレイテンシーを計測するときに、しばしば 1 秒以上の値が観測されることがあります。これは直感的には「遅い」と感じられるかもしれませんが、Solana ブロックチェーンのブロックタイムが秒単位でしか記録されない（ミリ秒以下を切り捨てている）という特性を踏まえる必要があります。

### 同一リージョンでの接続

まず、gRPC のエンドポイントと同じリージョンにサーバーを配置することが基本的な前提です。たとえば、`grpc-ams1.erpc.global` に接続する場合は、サーバーもアムステルダムに置くことで、ネットワーク上の遅延を最小限に抑えられます。

### 「1 秒以上遅延」の背景

たとえば、トランザクションが実際には 07:46:46.900 に発生していても、Solana 上では 07:46:46.000 として記録されます。このトランザクションを 07:46:47.200 に受信した場合、単純計算では

```text
(受信時刻) - (ブロックタイム)
= 07:46:47.200 - 07:46:46.000
= 1.2 秒
```

となり、一見すると 1.2 秒の遅延に見えます。しかし実際には 07:46:46.900 に発生しているため、実際の遅延は約 300 ミリ秒（07:46:47.200 - 07:46:46.900 = 0.3 秒）です。

### 500ms を差し引く計算アプローチ

Solana が秒単位でブロックを扱うため、ブロックタイムがその秒のうち「いつ」実行されたかを正確に知ることはできません。そこで「秒の真ん中（500ms）」を基準として計算を行うと、より現実に近い遅延値を推測できます。つまり、

```text
(受信時刻) - (ブロックタイム + 0.5 秒)
```

とすることで、おおまかにミリ秒単位の誤差を補正できるわけです。厳密ではないものの、Solana ブロックの秒単位管理が生む「ずれ」をある程度解消して、実際のレイテンシーに近い値が得られます。

これらの点を考慮しながら計測することで、Solana Geyser gRPC の遅延を正しく把握しやすくなります。時間管理が秒単位であることによる影響を考慮すると、ネットワークやサーバーの物理的配置と合わせて検証することが、より実際のパフォーマンスを正確に捉えるための鍵となります。
