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.9.0
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.9.0
Description:
Check gRPC endpoint
Options:
-h, --help - Show this help.
--endpoint <endpoint> - gRPC endpoint URL
--token <token> - Token for authenticationGeyser gRPC 접속 권한이 없는 경우 Geyser gRPC 빠른 시작 가이드를 참고하세요.
지연 시간 확인 실행
공유 endpoint를 직접 테스트하려면, 본인의 endpoint를 사용하여 다음 명령을 실행하세요:
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 ms그러면 테스트가 진행되어 Geyser gRPC 서버의 지연 시간을 확인합니다.
Ctrl + C를 눌러 테스트를 중지할 수 있습니다.참고: gRPC 지연 시간 이해하기
gRPC 지연 시간을 측정할 때 1초가 넘는 값이 표시될 수 있습니다. 처음에는 "느리다"고 느낄 수 있지만, Solana의 블록 시간은 초 단위로만 기록되며 밀리초는 잘려 나간다는 점을 기억하세요.
동일 리전에서 연결하기
먼저, 서버가 gRPC endpoint와 동일한 리전에 위치하는지 확인하세요. 예를 들어
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의 초 단위 시간 기록 때문에 잠재적인 반올림 오차를 고려해야 하며, 실제 성능을 반영하기 위해 서버와 endpoint를 적절히 배치하는 것도 중요합니다.






