Solana Geyser gRPC - gRPC 레이턴시 테스트
이 가이드에서는 Solana Geyser gRPC 서버의 레이턴시를 테스트하는 방법을 보여줍니다.
전제 조건
SLV CLI를 설치하세요:
bash
curl -fsSL https://storage.slv.dev/slv/install | shcurl -fsSL https://storage.slv.dev/slv/install | shgRPC 레이턴시 테스트
다음 명령으로 Solana Geyser gRPC 서버의 레이턴시를 간단히 테스트할 수 있습니다:
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 authenticationslv 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 authenticationGeyser gRPC 액세스가 없다면 Geyser gRPC 빠른 시작 가이드를 참조하세요.
레이턴시 체크 실행
공유 엔드포인트를 직접 테스트하려면 자신의 엔드포인트로 다음 명령을 실행하세요:
bash
slv check grpc --endpoint <YOUR_ENDPOINT> --token noneslv 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➜ ~ 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 msCtrl + C를 눌러 테스트를 중지할 수 있습니다.참고: gRPC 레이턴시 이해하기
gRPC 레이턴시를 측정할 때 1초를 넘는 값이 표시될 수 있습니다. 처음에는 "느리다"고 느껴질 수 있지만, Solana의 블록 시간은 초 단위로만 기록되고 밀리초는 버려진다는 점을 기억하세요.
같은 리전에서 접속
먼저 서버가 gRPC 엔드포인트와 같은 리전에 있는지 확인하세요. 예를 들어
grpc-ams1.erpc.global에 접속한다면 네트워크 레이턴시를 최소화하기 위해 서버도 Amsterdam에 두어야 합니다."1초 초과" 레이턴시가 표시되는 이유
실제로는 07:46:46.900에 발생했지만 Solana가 07:46:46.000으로 기록하는 트랜잭션을 생각해 보세요. 07:46:47.200에 수신했다면, 단순 계산으로는:
text
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds언뜻 보면 1.2초의 레이턴시처럼 보입니다. 그러나 트랜잭션은 실제로 07:46:46.900에 발생했으므로 실제 레이턴시는 약 300ms에 불과합니다:
07:46:47.200 - 07:46:46.900 = 0.3초.
근사값으로 500ms 빼기
Solana는 가장 가까운 초로 내림하므로 트랜잭션이 그 초의 어디에서 발생했는지 정확히 알 수 없습니다. 합리적인 근사치는 중간값(500ms)을 가정하는 것이며, 공식은 다음과 같습니다:
text
(Receive Time) - (Block Time + 0.5 seconds)(Receive Time) - (Block Time + 0.5 seconds)완벽하게 정확하지는 않지만, 누락된 밀리초 데이터를 보정하여 실제 gRPC 레이턴시에 더 가까운 추정치를 제공합니다.
이러한 고려 사항을 염두에 두면 Solana Geyser gRPC 레이턴시를 더 정확하게 측정할 수 있습니다. Solana의 초 단위 시간 기록은 잠재적인 반올림 오차를 고려해야 함을 의미하며, 실제 성능을 반영하려면 적절한 서버와 엔드포인트 배치도 필요합니다.