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 | 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 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 authenticationإذا لم يكن لديك وصول إلى Geyser 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 msسيبدأ الاختبار بعد ذلك بفحص زمن استجابة خادم Geyser gRPC.
يمكنك إيقاف الاختبار بالضغط على
Ctrl + C.مرجع: فهم زمن استجابة gRPC
عند قياس زمن استجابة gRPC، قد ترى قيمًا تتجاوز ثانية واحدة. قد يبدو هذا «بطيئًا» للوهلة الأولى، لكن تذكّر أن زمن الكتلة في Solana يُسجَّل بدقة الثانية فقط — حيث تُحذف المللي ثانية.
الاتصال من المنطقة نفسها
أولًا، تأكد من أن خادمك موجود في المنطقة نفسها التي توجد بها نقطة نهاية gRPC. فعلى سبيل المثال، إذا كنت تتصل بـ
grpc-ams1.erpc.global، فيجب أن تضع خادمك في Amsterdam أيضًا لتقليل زمن استجابة الشبكة إلى أدنى حد.لماذا قد ترى زمن استجابة «يتجاوز ثانية واحدة»
لنفترض معاملة تحدث فعليًا في 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 يستلزم مراعاة فروق التقريب المحتملة، بالإضافة إلى ضمان الموضع الصحيح للخادم ونقطة النهاية بما يعكس الأداء في العالم الحقيقي.






