ERPC تطلق Solana Stream SDK v4.0.0 لتسريع معالجة UDP Shreds واستعادة اتصال gRPC

ERPC تطلق Solana Stream SDK v4.0.0 لتسريع معالجة UDP Shreds واستعادة اتصال gRPC

ERPC تطلق Solana Stream SDK v4.0.0 لتسريع معالجة UDP Shreds واستعادة اتصال gRPC
أطلقت ELSOUL LABO B.V. وValidators DAO رسميًا Solana Stream SDK v4.0.0 في 6 نوفمبر 2026، وهو SDK مفتوح المصدر للتعامل مع بيانات Solana المتدفقة. أظهرت اختبارات الأداء المحلية تسريع المعالجة الداخلية لبيانات UDP Shreds في Rust بنحو 108 أضعاف، وزيادة معدل معالجة قائمة انتظار الأحداث في TypeScript إلى نحو 4 أضعافه. كما أصبح Geyser gRPC يستأنف استقبال التحديثات بسرعة أكبر بعد انقطاع الاتصال. يمكن استخدام SDK مجانًا، مع أمثلة بلُغتَي Rust وTypeScript لمساعدة المطورين على البدء.
تعتمد الاستفادة من توصيل البيانات بزمن استجابة منخفض داخل التطبيق أيضًا على سرعة معالجة البيانات الواردة. يزيد الإصدار 4.0.0 كفاءة المعالجة الداخلية بعد وصول البيانات، ويحسّن استعادة الاتصال بعد الانقطاع. ويتيح استخدامه مع ERPC Shreds UDP Forwarding Premium للمطورين تحسين كل من مسار التوصيل وتنفيذ الاستقبال في تطبيقات Solana الخاصة بهم.

قياس تحسينات المعالجة واستعادة الاتصال عبر ثلاثة اختبارات

مقارنة المعالجة الداخلية في Rust UDP وقائمة انتظار أحداث TypeScript واستعادة اتصال gRPC في Solana Stream SDK v4.0.0
في مسار استقبال Rust UDP، يسرّع v4 فك ترميز مخططات البيانات، وإدراجها في مخزن مؤقت داخلي، وعملية deshred التي تعيد بناء البيانات من Shreds. وهو يقلّل العبء الإضافي للمعالجة عبر مراجعة تنظيف الحالة الداخلية وقراءات الساعة التي كانت تتكرر لكل حزمة، مع الحفاظ على مدد الاحتفاظ بالبيانات. في المقارنة، انخفض زمن المعالجة الداخلية لكل مخطط بيانات من 94,236 ns إلى 855–881 ns، بما يعادل تسريعًا بنحو 108 أضعاف.
أُجري اختبار الأداء على جهاز Mac بمعالج من سلسلة Apple M، مع معالجة 403,200 مخطط بيانات عبر 300 فتحة زمنية في كل جولة تشغيل. وتستند مقارنة النتائج إلى وسيط خمس جولات تشغيل. يشمل القياس المسار الداخلي decode→insert→deshred. ولا يشمل زمن التوصيل عبر الشبكة أو المعالجة اللاحقة في تطبيق المستخدم. ويساعد تقليل العمل اللازم لإعادة بناء Shreds الواردة المطورين على تخصيص مزيد من موارد الحوسبة لمنطق التطبيق.
تقلّل أمثلة Geyser gRPC ومشاريع البدء الخاصة بـTypeScript الانتظار ما دامت هناك أحداث في قائمة الانتظار، مما يسمح باستخراج البيانات المستلمة بكفاءة أكبر. في اختبار لقائمة الانتظار وحدها، عالج مليوني حدث على Node.js 24، ارتفع معدل المعالجة من 5.7–7.4 مليون حدث في الثانية إلى 24.8–29.4 مليون حدث في الثانية، أي تحسّن بنحو 4 أضعاف.
بالنسبة إلى Geyser gRPC، جرى تحديث العميل المسؤول عن إعادة الاتصال والفاصل الزمني للمحاولة الأولى لإعادة الاتصال. في اختبار أُحدثت فيه 20 حالة انقطاع على خادم tonic محلي، انخفض وسيط الفاصل بين التحديثات المستلمة قبل كل انقطاع وبعده من 552 ms باستخدام 3.0 runner إلى 103 ms باستخدام 4.0 runner. ويقيس ذلك الفاصل حتى استئناف التحديثات في بيئة الاختبار المحلية.
تأتي هذه النتائج الثلاث من اختبارات تختلف في نطاقها وظروفها. وهي تبيّن، على الترتيب، التحسينات في المعالجة الداخلية في Rust، وقائمة انتظار الأحداث في TypeScript، وإعادة اتصال gRPC. تتوفر تفاصيل التنفيذ وظروف الاختبارات في PR #129 المدرج ضمن قسم «روابط ذات صلة».

الحفاظ على دعم Alpenglow وتحديث العملاء

أُضيف دعم Alpenglow في v3.0.0. ويحافظ الإصدار 4.0.0 على التمييز بين علامات الكتل، التي تمثّل رأس الكتلة وتذييلها وتحديثات الكتلة الأم، وبين سجلات entries التي تحتوي على المعاملات. وبذلك تستطيع التطبيقات التعامل مع معلومات بنية الكتلة بصورة منفصلة عن سجلات entries التي تحتاج إلى معالجتها.
يحدّث الإصدار 4.0.0 العملاء إلى Agave 4.4.1 وYellowstone gRPC 17.x. أثناء إعادة الاتصال، يستطيع حدث Disconnected الإبلاغ عن معلومات تعرّف البيانات المستلمة جزئيًا، إلى جانب موضع استئناف الاستقبال. ويوفر ذلك للتطبيقات المعلومات اللازمة لتنفيذ طريقتها الخاصة في التعامل مع نُسخ البيانات المكررة عند إعادة إرسالها، ومع البيانات التي لم تصل كاملة.
يحافظ الانتقال من v3 إلى v4 على تعريفات Geyser protobuf، مع تحديث أحداث إعادة الاتصال ونوعَي Solana message وtransaction المستخدمَين في Rust. ويشرح دليل الترحيل المنشور التغييرات في معالجات الأحداث وإصدارات التبعيات.

استخدام Rust مع UDP، وRust وTypeScript مع gRPC

تتوفر حزمة Rust المنشورة solana-stream-sdk وحزمة TypeScript المنشورة @validators-dao/solana-stream-sdk بالإصدار v4.0.0. وترد اللغات المدعومة لكل نوع اتصال في الجدول التالي.
نوع الاتصالاللغات المدعومة
Shreds UDPRust
Geyser gRPCRust وTypeScript
Shreds gRPCRust وTypeScript
استخدم عميل Rust لاستقبال Shreds عبر UDP. يستخدم مثال Rust UDP ومشروع البدء الخاص به SDK v4.0.0 المنشور، ويتيحان تجربة استقبال البيانات وإعادة بنائها من Shreds ورصد تعليمات البرنامج الذي تريد مراقبته. ويمكن تغيير البرنامج المُراقَب والمعالجة التي تلي الرصد لاستخدام هذا المشروع كنقطة انطلاق لتطبيقك.
عند التطوير باستخدام TypeScript، يمكنك استخدام Geyser gRPC أو Shreds gRPC. تتضمن أمثلة Geyser gRPC ومشاريع البدء التحسينات التي أُدخلت على قائمة انتظار الأحداث في هذا الإصدار. اختر التنفيذ المنشور الذي يناسب لغتك وطريقة توصيل البيانات التي تستخدمها.

الاستفادة من Shreds UDP Forwarding Premium

يربط ERPC Shreds UDP Forwarding Premium عدة عقد داخل كل منطقة ضمن شبكة mesh، ويوجّه أول نسخة من كل Shred تصل إلى تلك الشبكة. ويؤثر كل من زمن الوصول عبر مسار التوصيل وزمن إعادة البناء داخل SDK بعد الوصول في المدة اللازمة لتصبح البيانات المستلمة قابلة للاستخدام. ويمكن تطبيق تحسينات استقبال Rust UDP على جانب الاستقبال لمعالجة البيانات التي يوصّلها Premium.
في المقارنة التي أُجريت في فرانكفورت يوم 30 أكتوبر 2026، التُقطت بيانات Standard وPremium بالتزامن لمدة 120 ثانية على جهاز واحد وباستخدام الساعة نفسها. وجرت مطابقة حمولات UDP ذات المحتوى المتطابق من ملف pcap. وصل Premium أولًا في 98% من هذه المجموعة المتطابقة، وبلغ وسيط فرق الوصول 1.78 ms. ومن الحمولات التي رُصدت في Standard، رُصدت 93.9% أيضًا في Premium.
مقارنة الوصول أولًا بين Shreds UDP Forwarding Premium وStandard في الظروف نفسها في فرانكفورت
يوضح رسم Premium فروق زمن الوصول بين مسارات التوصيل، بينما يوضح رسم SDK المعالجة الداخلية لدى المستقبِل واستعادة الاتصال. وفي التطبيق الفعلي، يتيح تسجيل وقت وصول الحزمة ووقت رصد التعليمة المطلوبة التحقق من مدى انعكاس التقدم في التوصيل على نتيجة المعالجة.

المقارنة في بيئتك باستخدام الاشتراك بالساعة والأمثلة

يتوفر Shreds UDP Forwarding Premium بنظام الفوترة بالساعة بسعر €1.39 للساعة. ابدأ استخدام الخدمة من لوحة التحكم وتحقق من الاستقبال باستخدام مشروع البدء Rust UDP. ويسمح استخدام المنطقة نفسها وخادم الاستقبال نفسه وحِمل العمل نفسه للتطبيق بتقييم فروق أوقات الوصول بصورة منفصلة عن زمن المعالجة بعد الاستلام.
سجّل أولًا عنوان IPv4 العام ومنفذ UDP في لوحة التحكم، واسمح بحركة المرور الواردة من المصادر المدرجة. وبعد التحقق من استقبال الحزم وإعادة بناء البيانات باستخدام مشروع البدء Rust UDP، أضف إلى التقييم البرامج التي تريد مراقبتها والمعالجة الفعلية لتطبيقك. اجمع بين الأمثلة وخدمة التوصيل لقياس الوقت من الاستقبال إلى الرصد في بيئتك.

روابط ذات صلة