أكس لابس تطلق neowj3 3.24.2 مع دعم RPC لـ Neo 3.10

في السابع من يوليو، أطلقت AxLabs النسخة 3.24.2 من neow3j، وهي أداة برمجية لمطوري جافا على منصة Neo. هذه النسخة الجديدة متوافقة مع Neo 3.10 وتدعم طرق RPC الجديدة التي جاءت مع Neo-CLI v3.10.0. التحديث يشمل توقيع الرسائل والتحقق منها، وتنسيق توقيع المعاملات بين عدة أطراف، ودعم إضافة DeferredRelay، وكل ذلك دون أي تغييرات تؤثر على الكود القديم.
neow3j هي ثاني أداة رئيسية تدعم Neo 3.10 بشكل صريح، بعد إصدار NeoGo v0.120.0 في منتصف يونيو.
توقيع الرسائل والتحقق منها
النسخة الجديدة تضيف دعم لطرق signmsg و verifymsg، مما يسمح للمطورين بتوقيع أي رسالة باستخدام محفظة والتحقق من التوقيع برمجياً. الطريقتين تدعمان ميزة أمان اختيارية تمنع إعادة استخدام التوقيع عبر شبكات Neo المختلفة. عند تفعيل هذه الميزة، يتم تشفير التوقيع مع معرف الشبكة، مما يجعله فريداً لكل شبكة ولا يمكن استخدامه في شبكة أخرى.
توقيع المعاملات بين عدة أطراف
هذا الإصدار يدعم أيضاً طرق signandrelay، التي تحل مشكلة معروفة في تطوير Neo: تنسيق التوقيعات بين عدة أطراف للمعاملات متعددة التوقيع (multisig). الفكرة تسمح للموقعين المختلفين بتبادل كود ContractParametersContext بين نسخ neow3j أو بين neow3j و Neo-CLI إلى أن يتم جمع كل التوقيعات المطلوبة. بعد ذلك، يتم إرسال المعاملة الموقعة بالكامل إلى الشبكة. هذا مفيد جداً في حالات الحوكمة أو الحفظ المؤسسي حيث يجب أن يأذن عدة أشخاص بالمعاملة قبل تنفيذها.
دعم إضافة DeferredRelay
neow3j 3.24.2 تقدم دعم جافا لإضافة DeferredRelay التي أضيفت في Neo-CLI v3.10.0. هذه الإضافة تتعامل مع المعاملات التي يكون وقت صلاحيتها في المستقبل. بدلاً من أن يضطر المرسل لمراقبة الشبكة وإعادة إرسال المعاملة يدوياً، الإضافة تحفظ المعاملات وتنفذها تلقائياً عندما يحين وقتها. ثلاث طرق RPC جديدة متاحة: getpendingvaliduntilrelay لعرض قائمة الانتظار، و نسختين من getPendingTransaction لاسترجاع معاملة معينة. هذه الميزة مفيدة جداً مع توقيع المعاملات متعددة الأطراف، لأن جمع التوقيعات قد يستغرق وقتاً طويلاً.
إصلاح مشكلة الترجمة وتحديثات الاختبار
من ناحية أدوات التطوير (devpack)، تم إصلاح مشكلة في إصدار المترجم. سابقاً، الإصدارات التجريبية (snapshot) كانت تظهر أرقام إصدارات غير منشورة، مما يسبب إرباكاً حول ما إذا كان العقد مبني بإصدار رسمي أم اختباري. الآن، المترجم يحدد الإصدار بشكل صحيح عند البناء، والإصدارات التجريبية تضاف لها علامة -SNAPSHOT في ملفات NEF و ABI. أيضاً، تم تحديث أدوات الاختبار إلى Neo Express v3.10.0 ومكتبة Testcontainers إلى v2.0.3 لتوافق أفضل مع Docker.
كيفية الترقية
التحديث لا يتطلب أي تغيير في الكود الموجود. كل ما عليك فعله هو تحديث رقم الإصدار في ملفات Gradle أو Maven الخاصة بك من 3.24.1 إلى 3.24.2. تم دمج سبعة طلبات تعديل (pull requests) في هذا الإصدار، بحوالي 1,835 سطراً من التغييرات.
- دعم توقيع الرسائل والتحقق منها مع ميزة منع إعادة الاستخدام عبر الشبكات.
- دعم تنسيق توقيع المعاملات متعددة التوقيع (multisig).
- دعم إضافة DeferredRelay للمعاملات ذات الوقت المستقبلي.
- إصلاح مشكلة إصدار المترجم في الإصدارات التجريبية.
- تحديث أدوات الاختبار والتحسينات.
- لا حاجة لتغيير الكود عند الترقية.
الأسئلة الشائعة (FAQ)
س١: هل التحديث إلى neow3j 3.24.2 سيسبب مشاكل في كودي القديم؟
ج: لا، التحديث لا يتطلب أي تغيير في الكود الموجود. كل ما تحتاجه هو تحديث رقم الإصدار في ملفات إدارة التبعيات مثل Gradle أو Maven.
س٢: ما هي أهم ميزة في هذا الإصدار الجديد؟
ج: أهم ميزة هي دعم توقيع المعاملات بين عدة أطراف (multisig) و إضافة DeferredRelay للمعاملات ذات الوقت المستقبلي. هاتان الميزتان تجعلان من السهل بناء تطبيقات للحوكمة والمؤسسات حيث يحتاج أكثر من شخص للموافقة على المعاملة، وتضمن تنفيذ المعاملات حتى لو تأخر جمع التوقيعات.
س٣: ما هي مشكلة الترجمة التي تم إصلاحها في devpack؟
ج: تم إصلاح مشكلة كانت تجعل الإصدارات التجريبية (snapshot) تظهر أرقام إصدارات غير صحيحة. الآن، الإصدارات التجريبية تظهر علامة -SNAPSHOT بوضوح، لتعرف بسهولة أن العقد مبني على إصدار تطويري وليس نهائي.












