
نظرة عامة
يحسّن ADAMANT Node v0.10.2 استعادة المزامنة، ويقدّم نقاط تحقق موثوقة للحالة المشتقة، ويوسّع قدرات REST وSocket.IO، ويصلح عدة حالات حدية في API، ويحسّن استعلامات قاعدة البيانات، ويحدّث التبعيات. يحافظ هذا الإصدار على سلوك البروتوكول الحالي ولا يُدخل تفرّع إجماع.
سجل التغييرات الكامل متاح على GitHub.
استعادة المزامنة
تعتمد الشبكة اللامركزية على مشغّلين مستقلين يُشغّلون العُقد تحت ظروف متباينة. إذا كان برنامج العُقدة يتطلب تدخّلاً مستمراً أو استعادة على مستوى الخبراء، تصبح المشاركة أصعب وتصبح الشبكة أقل لامركزية من الناحية العملية.
سابقاً، كان استدعاء مرتد مُقاطَع أو خطأ في قاعدة البيانات ضمن خط أنابيب المزامنة قد يترك العُقدة تعتقد أنها لا تزال تُزامِن رغم أن ارتفاع الكتلة توقّف عن التقدّم. وتبقى العُقدة عالقة حتى يلاحظ المشغّل ذلك ويُعيد تشغيلها.
يُضيف v0.10.2 مراقب مزامنة قائم على التقدّم يُميّز بين العُقدة البطيئة التي لا تزال تُطبّق الكتل وعملية المزامنة المتوقّفة فعلياً. إذا لم يُحرَز أي تقدّم في ارتفاع الكتلة خلال النافذة المُعدّة مسبقاً، تُجهض العُقدة تلك العملية بأمان، وتُفرّغ أي تغيير حالة قيد التنفيذ، وتسمح للمزامنة بالبدء من جديد. كما يُصلح الإصدار مسارات رفض قاعدة البيانات التي كانت قد تترك استدعاءات معالجة الكتل غير مكتملة بصمت.
هذا ليس تغيير إجماع. فهو لا يقرّر أي الكتل صالحة؛ بل يُساعد العُقدة على العودة إلى التشغيل الطبيعي عندما يتوقّف خط أنابيب التنفيذ المحيط عن العمل.
نقاط تحقق موثوقة للحالة المشتقة
تُحافظ عُقد ADAMANT على جداول mem_* مشتقة للأرصدة والمفوّضِين والجولات والحالة ذات الصلة. تظل سلسلة الكتل هي المصدر المعتمد، لكن إعادة بناء كل الحالة المشتقة بعد إيقاف مُقاطَع قد تستغرق وقتاً طويلاً على سلسلة ناضجة.
يُقدّم v0.10.2 نقاط تحقق دوّارة ومُستمرّة لتلك الحالة المشتقة. كل نقطة تحقق مرتبطة بكتلة معروفة وشبكة، وتحمل هاضمة معتمدة، وتُتحقّق من صحتها قبل الاستخدام. عندما تبدأ العُقدة بمرايا ذاكرة غير متسقة، يمكنها استعادة أحدث نقطة تحقق موثوقة وإعادة تشغيل الكتل التي جاءت بعدها فقط.
نموذج الأمان محافظ. لا تُقبل نقطة التحقق إلا بعد التحقّق من بياناتها الوصفية وهاضمتها ومرجع السلسلة والشبكة وثوابت الحالة. تُعاد بناء الحالة غير المؤكدة بدلاً من الوثوق بها من نقطة تحقق. إذا فشلت أي خطوة تحقّق أو إعادة تشغيل جزئية، تعود العُقدة إلى إعادة البناء الحتمي الكامل الحالي. تظل الكتل المعتمدة وإعادة التشغيل الحتمية هي مصدر الحقيقة، لذا فإن نقطة التحقق هي مسار استرداد أسرع وليست حالة بروتوكول.
تحسينات REST API
ADAMANT هو طبقة ثقة لامركزية لمنتجات التواصل، وليس مجرد قاعدة بيانات سلسلة كتل. يُضيف v0.10.2 نقطة نهاية متسقة للحسابات الأعلى مع ترتيب حتمي، وترقيم صفحات، وتصفية المفوّضِين، وطلبات العدّ فقط، مما يلغي الحلول المؤقتة الخاصة بكل عُقدة لأدوات الاستكشاف والتحليل.
كما يُتيح الإصدار الاسم الرمزي النشط لإجماع العُقدة، وجدول التفعيل الفعّال، وجدول مكافآت المعالم الكامل، ومبلغ التفويض المُنتَج مدى الحياة لكل مفوّض. يمكن لأنظمة المراقبة وأدوات الاستكشاف الآن قراءة الجداول الفعّالة مباشرة من العُقدة بدلاً من تكرار الإعداد في كل عميل.
عدة واجهات برمجة تطبيقات موجودة للمفوّضِين أصبحت أكثر دقة. استجابات المفوّض الفردي تُعيد الآن الترتيب الحقيقي وسياق الإنتاجية. لم تعد استعلامات مصوّتي المفوّض تخاطر بإرجاع حسابات غير ذات صلة عند استخدام مُرشّح قائمة عناوين. تستخدم إسقاطات المفوّض التالي ارتفاع الكتلة التالي الصحيح عند حدود الجولات.
تلقت واجهة برمجة تطبيقات الكتل إصلاحاً للصحة والأداء: فهي الآن تتعامل مع numberOfTransactions=0 بشكل صحيح، وفهرس قاعدة بيانات مركّب جديد يمنع فحصاً مكلفاً عند الاستعلام عن مُنشئ غير معروف مع ترتيب الارتفاع الافتراضي.
أحداث Socket.IO المباشرة
يمكن للتطبيقات التي تحتاج تحديثات في الوقت المناسب الآن الاشتراك في عائلتين جديدتين من أحداث Socket.IO للعميل: إشعارات newBlock المدمجة وإشعارات balances/change للرصيد المؤكد، أو الرصيد غير المؤكد، أو كليهما.
تُحافظ العُقدة على فهارس اشتراك مخصصة وتُجمّع قراءات الحسابات المتأثرة حول تطبيق الكتلة والتراجع، بحيث لا تفحص كل عميل متصل أو تُجري استعلامات حسابات غير ضرورية عندما لا يكون أحد مشتركاً في البيانات المتغيرة.
هذه الأحداث هي بأفضل جهد وغير دائمة. يجب على التطبيقات استعادة الاشتراكات بعد إعادة الاتصال والاستمرار في مُواءمة الحالة الحرجة عبر REST. تُقلّل الأحداث المباشرة من الاستقصاء لكنها لا تحل محل التحقّق.
خط أساس التبعيات
يُحدّث الإصدار التبعيات ضمن إصداراتها الرئيسية الحالية، ويزيل تبعية npm مباشرة غير مستخدمة وشجرة فرعية كبيرة مضمّنة، ويُطبّق تجاوز توافق ضيق لتبعية سلسلة أدوات عابرة. انتقل خط أساس تدقيق npm الموثوق من أربع نتائج متوسطة وواحدة عالية إلى صفر نتائج متوسطة أو عالية أو حرجة.
لم يتغيّر أي سلوك بروتوكول تشفير، أو توقيع، أو عبارة استذكار، أو مصافحة نظير، أو تحقّق من معاملات كجزء من هذه الصيانة.
ملاحظات الترقية
الترقية إلى v0.10.2 ليست إلزامية لتوافق الشبكة. لا يُغيّر الإصدار تسلسل الكتل أو المعاملات، أو التوقيعات، أو ترتيب المفوّضِين، أو المكافآت، أو الرسوم، أو ارتفاعات التفعيل، أو توقيت الخانات، أو إعادة التشغيل الحتمية. يمكن للعُقد المتوافقة الحالية مواصلة المشاركة. توصي cryptofoundry بالترقية للمشغّلين الذين يريدون استعادة مزامنة أفضل، واسترداداً أسرع بعد عمليات الإيقاف المُقاطعة، وصيانة أمنية، وأداء استعلام محسّن، وقدرات API جديدة.
لا يزال ADAMANT Node يتطلب Node.js 22.13.0 أو أحدث. تُطبّق عملية التشغيل الأولى بعد الترقية عمليات ترحيل جديدة لقاعدة البيانات. يجب على المشغّلين اتّباع إجراء النسخ الاحتياطي المعتاد، وإيقاف العُقدة بشكل سلس، وانتظار Cleaned up successfully، وإتاحة وقت ومساحة قرص كافيين لإنشاء جداول نقاط التحقق والفهارس الجديدة. بعد التشغيل، تحقّق من حالة العُقدة، وتقدّم المزامنة، ومعالجة الكتل المباشرة، وأي قدرات REST أو Socket.IO التي تستخدمها الخدمات المتصلة.
موارد إضافية متاحة في توثيق ADAMANT Node، ومخطط ADAMANT API، ونقاش الإصدار التقني.