Solana Geyser gRPC - Kiểm tra độ trễ gRPC

Hướng dẫn này sẽ chỉ bạn cách kiểm tra độ trễ của máy chủ Solana Geyser gRPC.

Điều kiện tiên quyết

Cài đặt SLV CLI:
bash
curl -fsSL https://storage.slv.dev/slv/install | sh

Kiểm tra độ trễ gRPC

Bạn có thể dễ dàng kiểm tra độ trễ của máy chủ Solana Geyser gRPC bằng lệnh sau:
bash
slv check grpc --help
Usage:   slv check grpc
Version: 0.8.2

Description:

  Check gRPC endpoint

Options:

  -h, --help              - Show this help.
  --endpoint  <endpoint>  - gRPC endpoint URL
  --token     <token>     - Token for authentication
Nếu bạn chưa có quyền truy cập Geyser gRPC, vui lòng tham khảo hướng dẫn Geyser gRPC Bắt đầu nhanh.

Thiết lập Geyser gRPC Endpoint/Token

Bạn có thể thiết lập endpoint/token Geyser gRPC tương tác bằng lệnh sau:
bash
slv check grpc
? Enter gRPC endpoint URL: ›
Sau đó, vui lòng thiết lập Geyser gRPC Authentication Token
bash
? Enter xToken for gRPC: ›
Bài kiểm tra sẽ tiến hành kiểm tra độ trễ của máy chủ Geyser gRPC.
bash
? Enter Token for authentication: › xToken
Checking gRPC endpoint: http://localhost:10000
Current latency: 608 ms, slots: 0
Avg latency: 608 ms
Current latency: 1043 ms, slots: 1
Avg latency: 825.5 ms
Current latency: 449 ms, slots: 0
Avg latency: 700 ms
Current latency: 900 ms, slots: 1
Avg latency: 750 ms
Current latency: 1261 ms, slots: 2
Avg latency: 852.2 ms
Current latency: 658 ms, slots: 0
Avg latency: 819.8333333333334 ms
Current latency: 1041 ms, slots: 1
Avg latency: 851.4285714285714 ms
1
Current latency: 504 ms, slots: 0
Avg latency: 808 ms
.
.
.
Bạn có thể dừng bài kiểm tra bằng cách nhấn Ctrl + C.

Tham khảo: Hiểu về độ trễ gRPC

Khi đo độ trễ gRPC, bạn có thể thấy giá trị hơn một giây. Ban đầu điều này có vẻ "chậm", nhưng hãy nhớ rằng thời gian block của Solana chỉ được ghi nhận ở mức giây — phần mili giây bị cắt bớt.

Kết nối trong cùng khu vực

Đầu tiên, đảm bảo máy chủ của bạn nằm trong cùng khu vực với endpoint gRPC. Ví dụ, nếu bạn kết nối đến grpc-ams1.erpc.global, bạn nên đặt máy chủ ở Amsterdam để giảm thiểu độ trễ mạng.

Tại sao bạn có thể thấy độ trễ "hơn 1 giây"

Xem xét một giao dịch thực tế xảy ra lúc 07:46:46.900, nhưng Solana ghi nhận là 07:46:46.000. Nếu bạn nhận được lúc 07:46:47.200, phép tính đơn giản cho ra:
text
(Thời gian nhận) - (Thời gian Block)
= 07:46:47.200 - 07:46:46.000
= 1.2 giây
Nhìn qua, đây có vẻ là 1.2 giây độ trễ. Tuy nhiên, vì giao dịch thực sự xảy ra lúc 07:46:46.900, độ trễ thực tế chỉ khoảng 300ms: 07:46:47.200 - 07:46:46.900 = 0.3 giây.

Trừ 500ms như một xấp xỉ

Vì Solana làm tròn xuống giây gần nhất, chúng ta không biết chính xác giao dịch xảy ra ở đâu trong giây đó. Một xấp xỉ hợp lý là giả sử điểm giữa (500ms), nên công thức trở thành:
text
(Thời gian nhận) - (Thời gian Block + 0.5 giây)
Mặc dù không hoàn toàn chính xác, điều này giúp bù đắp dữ liệu mili giây bị thiếu, cung cấp ước tính gần hơn với độ trễ gRPC thực tế.
Bằng cách ghi nhớ những điều này, bạn có thể đánh giá chính xác hơn độ trễ Solana Geyser gRPC. Việc ghi nhận thời gian ở mức giây trên Solana đòi hỏi phải tính đến sai lệch làm tròn tiềm năng, cũng như đảm bảo vị trí máy chủ và endpoint phù hợp để phản ánh hiệu suất thực tế.