Solana Geyser gRPC - gRPC विलंबता परीक्षण

यह गाइड बताती है कि Solana Geyser gRPC server की विलंबता कैसे टेस्ट करें।

पूर्व-आवश्यकताएँ

SLV CLI इंस्टॉल करें:
bash
curl -fsSL https://storage.slv.dev/slv/install | sh

gRPC विलंबता टेस्ट करें

नीचे दी गई कमांड से आप Solana Geyser gRPC server की विलंबता आसानी से टेस्ट कर सकते हैं:
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 access नहीं है, तो Geyser gRPC क्विकस्टार्ट गाइड देखें।

Latency जाँच चलाएँ

किसी shared endpoint को सीधे टेस्ट करने के लिए, अपने endpoint के साथ यह कमांड चलाएँ:
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 server की विलंबता जाँचना शुरू कर देगा।
Ctrl + C दबाकर आप टेस्ट रोक सकते हैं।

संदर्भ: gRPC विलंबता को समझना

gRPC विलंबता मापते समय आपको एक सेकंड से ज़्यादा के मान दिख सकते हैं। शुरू में यह "धीमा" लग सकता है, लेकिन याद रखें कि Solana का block time केवल सेकंड के स्तर पर दर्ज होता है—मिलीसेकंड हटा दिए जाते हैं।

एक ही क्षेत्र में कनेक्ट करना

सबसे पहले, सुनिश्चित करें कि आपका server उसी क्षेत्र में है जिसमें gRPC endpoint है। उदाहरण के लिए, अगर आप grpc-ams1.erpc.global से कनेक्ट कर रहे हैं, तो नेटवर्क विलंबता कम करने के लिए अपना server भी Amsterdam में रखें।

"1 सेकंड से ज़्यादा" विलंबता क्यों दिख सकती है

मान लीजिए कोई transaction असल में 07:46:46.900 पर होता है, लेकिन Solana उसे 07:46:46.000 के रूप में दर्ज करता है। अगर आपको वह 07:46:47.200 पर मिलता है, तो सीधी गणना से यह मिलता है:
(Receive Time) - (Block Time)
= 07:46:47.200 - 07:46:46.000
= 1.2 seconds
पहली नज़र में यह 1.2 सेकंड की विलंबता लगती है। लेकिन क्योंकि transaction असल में 07:46:46.900 पर हुआ था, वास्तविक विलंबता केवल लगभग 300ms है: 07:46:47.200 - 07:46:46.900 = 0.3 सेकंड।

अनुमान के तौर पर 500ms घटाना

चूँकि Solana समय को नीचे की ओर पूरे सेकंड तक round करता है, इसलिए हमें ठीक-ठीक पता नहीं होता कि उस सेकंड में transaction कब हुआ। एक उचित अनुमान यह है कि बीच का बिंदु (500ms) मान लिया जाए, इसलिए सूत्र यह बनता है:
(Receive Time) - (Block Time + 0.5 seconds)
हालाँकि यह पूरी तरह सटीक नहीं है, फिर भी यह छूटे हुए मिलीसेकंड data की भरपाई करने में मदद करता है और वास्तविक gRPC विलंबता का ज़्यादा करीबी अनुमान देता है।
इन बातों को ध्यान में रखकर आप Solana Geyser gRPC विलंबता को ज़्यादा सटीक ढंग से आँक सकते हैं। Solana पर सेकंड-स्तर पर समय दर्ज होने के कारण संभावित rounding अंतर को ध्यान में रखना ज़रूरी है, साथ ही वास्तविक performance दिखाने के लिए server और endpoint की सही placement भी सुनिश्चित करनी होती है।