الت كوين

نظام NeoRust v2.1.0 يعزز معالجة الأخطاء ومنطق إعادة المحاولة لـ Neo N3 و Neo X Rust SDK

أطلق فريق R3E Network التحديث v2.1.0 من NeoRust، وهو تحديث يهدف إلى جعل الأخطاء واضحة وقابلة للمعالجة في بيئة الإنتاج. هذا التحديث موجه لمكتبة Rust الخاصة بـ Neo N3 و Neo X. صدر التحديث في 10 يوليو، بعد أقل من شهر من الإصدار الرئيسي v2.0.0 في 17 يونيو، والذي أدخل أنواع أخطاء موحدة وأنماط بناء جديدة.

يُعتبر NeoRust أداة مهمة للمطورين، حيث يوفر واجهة برمجية عالية المستوى لبناء التطبيقات. تشمل ميزاته إدارة المحافظ، التفاعل مع العقود الذكية، عمليات رمز NEP-17، ومحاكاة المعاملات. هذا الإصدار مختلف عن أداة neo-rs المنفصلة التي طورتها R3E.

تحسين معالجة الأخطاء وإعادة المحاولة

الهدف الرئيسي من v2.1.0 هو تحويل الأخطاء الصامتة أو العامة إلى أخطاء منظمة وقابلة للتنفيذ. تمت إضافة طريقة جديدة تسمى DecimalAmount::try_from_raw للتحقق من صحة القيم الأولية المستلمة من استجابات RPC ومدخلات المستخدم قبل استخدامها في التطبيق. هذا يمنع انتشار الكميات غير الصحيحة.

أصبحت الأخطاء الموحدة الآن تحتفظ بتصنيف كامل للأخطاء من طبقة المزود. تشمل التصنيفات الجديدة: حدود السرعة، إعادة المحاولة، التحقق من الصحة، وأخطاء الشبكة. توفر أخطاء JSON-RPC والمزود أدوات مساعدة لتحديد إذا كان الخطأ قابلاً لإعادة المحاولة أو إذا كان يمثل حد سرعة أو إذا تم رفض المعاملة بشكل مؤكد.

تم إعادة تصميم منطق إعادة المحاولة أيضاً. المعاملات المرفوضة بشكل مؤكد (مثل المعاملات غير الصالحة) لا يعاد محاولتها. المعاملات المؤقتة تُعاد محاولتها باستخدام استراتيجية الأس الأسي مع حد أقصى. يتم احترام توجيهات Retry-After من أخطاء JSON-RPC.

أصبحت إعادة بث المعاملات الآن واعية بالنتيجة: المعاملة المعروفة مسبقاً تُعامل كمقبولة وليس خطأ، الرفض المؤكد من العقدة يصبح خطأ معاملة يحمل التجزئة، وفقط الأخطاء المؤقتة من المزود تؤدي إلى إعادة المحاولة.

تحسينات Neo X

يمكن للمطورين الآن بناء وإرسال قيم AlloyTransactionRequest مباشرة لـ Neo X. هذا يزيل الحد القديم للقيمة القصوى الذي كان مفروضاً بواسطة غلاف المعاملة السابق. هذا يسمح بمعاملات كاملة الحجم على Neo X. تبقى طرق التوزيع والإرسال القديمة متاحة للتوافق مع الإصدارات السابقة.

تحديثات الأمان

في هذا التحديث، تقوم روابط المزود الآن بإخفاء أسماء المستخدمين وكلمات المرور وأجزاء الاستعلام من مخرجات Display و Debug. هذا يمنع تسرب بيانات الدخول في السجلات ورسائل الخطأ. كما تم استبعاد بيانات خطأ JSON-RPC ونصوص استجابة HTTP من التنسيق العام.

قام التحديث بتحديث openssl إلى الإصدار 0.10.81 و cmov إلى 0.5.4 لمعالجة ثغرات OpenSSL الخطيرة. سياسة cargo deny الجديدة ترفض الحزم المحذوفة وتضيق نطاق استثناءات الثغرات. تم وضع علامة واضحة على ملفات مثال و CLI كغير قابلة للنشر لتقييد نطاق الإصدار على crates.io لحزمة neo3 فقط.

التوافق

تم رفع الحد الأدنى لإصدار Rust المدعوم من 1.83 إلى 1.91. هذا يعني أن المطورين الذين يستخدمون إصدارات أقدم من Rust سيحتاجون إلى التحديث قبل استخدام v2.1.0.

الطريقة القديمة DecimalAmount::from_raw لا تزال تحتفظ بسلوكها القديم للتوافق مع إصدارات 2.x. تحتفظ نقاط الدخول Neo X بميزاتها القديمة بجانب التحويلات الجديدة. عمليات التحويل للأعداد الصحيحة عبر مسارات العقود والسياسات والجسر والمعاملات ترفض الآن القيم السالبة أو الكبيرة جداً بدلاً من تحويلها بشكل غير صحيح.

تطوير سريع

سرعة التطوير تعكس دفع فريق R3E نحو جاهزية الإصدار للاستخدام في بيئة الإنتاج. بعد تحسينات جودة الكود الشاملة في الإصدار v1.0.3 في وقت سابق من هذا العام، أصدرت R3E ثلاثة إصدارات في أقل من شهر: v2.0.0، تحديث أمني في نفس اليوم في v2.0.1، والآن v2.1.0. تم تعزيز عملية الإصدار نفسها باستخدام أتمتة تتحقق من إصدار الحزمة وسجل التغييرات، وتتطلب علامات مشروحة يمكن الوصول إليها من الفرع الرئيسي، وتشغيل فحوصات التنسيق والتدقيق والاختبارات وسياسات سلسلة التوريد قبل إنشاء الإصدار على GitHub.

أعلن لياو عن الإصدار في 12 يوليو، مسلطاً الضوء على الميزات الرئيسية: الكميات المدققة، الأخطاء المنظمة، إعادة المحاولة الذكية، إعادة البث الواعية بالنتيجة، معاملات Neo X كاملة الحجم، والإخفاء الآمن للأخطاء.

الأسئلة الشائعة

  • س: ما هو التحديث الجديد في إصدار NeoRust v2.1.0؟
    ج: التحديث يركز على جعل الأخطاء واضحة وقابلة للمعالجة. يشمل تحسينات في معالجة الأخطاء وإعادة المحاولة، دعم أفضل لـ Neo X، وتحديثات أمان مهمة مثل إخفاء بيانات الدخول.
  • س: هل يؤثر هذا التحديث على طريقة عملي مع معاملات Neo X؟
    ج: نعم، يمكنك الآن بناء وإرسال معاملات كاملة الحجم على Neo X دون حدود القيمة القديمة. الميزات القديمة لا تزال متاحة للتوافق.
  • س: هل أحتاج لتحديث إصدار Rust الخاص بي لهذا التحديث؟
    ج: نعم، تحتاج إلى تحديث Rust إلى الإصدار 1.91 على الأقل. إذا كنت تستخدم إصداراً أقدم، ستحتاج إلى الترقية لاستخدام v2.1.0.

رائد التداول

متداول محترف ذو رؤية استراتيجية، يقدم استراتيجيات مبتكرة لتحقيق النجاح في الأسواق المالية.
زر الذهاب إلى الأعلى