ADAMANT Explorer v2.0.0: Vue 3، حدود API محصنة، ومراقبة حية مرنة
يعد ADAMANT Explorer v2.0.0 أول إصدار مستقر منذ v1.3.0، حيث يدمج 218 التزاماً (commits) و491 ملفاً معدلاً في تحديث شامل للواجهة الأمامية، والخلفية، والمراقبة الحية، والأمان، والعمليات، مع الحفاظ على المسارات العامة والروابط العميقة الحالية.
بنية الواجهة الأمامية
تم استبدال تطبيق AngularJS وBootstrap 3 وWebpack القديم بمكونات Vue 3 أحادية الملف، وPinia لإدارة حالة الشبكة المشتركة، وVue Router 5 مع توافقية الروابط (URL)، وVite 8 لعمليات البناء. تقع الأدوات المساعدة المستقلة عن الإطار في src/lib/ ويمكن اختبارها مباشرة في Node.js.
تمت إعادة بناء جميع العروض الرئيسية: الصفحة الرئيسية، الكتل (blocks)، المعاملات، العناوين، المندوبون، كبار الحسابات، المحافظ المحجوزة، مراقب المندوبين، مراقب الشبكة، ورسم النشاط. تتضمن واجهة المستخدم الآن سمات فاتحة وداكنة ثابتة، وجداول وبطاقات معاملات متجاوبة، وعناصر تحكم يسهل الوصول إليها، وترتيباً حتمياً للمعاملات، وعرضاً دقيقاً لعملة ADM حيثما كانت دقة السجل أمراً جوهرياً.
عقدة ADAMANT وحدود API
تتم جميع التفاعلات مع عقدة ADAMANT الآن من خلال adamant-api 3.1.0 في طبقة مخصصة لمحول الطلبات. تضيف الخلفية ميزات جاهزية التشغيل، وتجاوز الفشل للعقد، ومعالجة أخطاء SDK الموحدة، والترقيم المحدود للصفحات، والتحقق الصارم من المسارات والاستعلامات، وطبقات منفصلة للطلب، والتطبيع، وتجميع الاستجابة.
يكشف المستكشف عن 12 مساراً فقط من نفس المصدر (same-origin) المطلوبة لواجهة المستخدم الخاصة به بالإضافة إلى GET /api/networkHealth. تمت إزالة ستة عشر نقطة نهاية قديمة غير مدعومة، وتصفية المعاملات التعسفية، وCORS الشامل، ومسارات مراقبة السوق المهجورة. هذه المساحة المقلصة هي حدود تنفيذ لواجهة مستخدم المستكشف، وليست API عامة للأغراض العامة. يجب على التطبيقات الخارجية استخدام adamant-api-jsclient. يمكن للمراقبة التشغيلية استخدام GET /api/networkHealth التي تبلغ عن حالات متسقة مثل live أو degraded أو critical أو unavailable.
المراقبة الحية واتساق ذاكرة التخزين المؤقت
تستخدم مساحات أسماء Socket.IO الأربعة العامة—Header وDelegate Monitor وNetwork Monitor وActivity Graph—الآن الاستطلاع المتسلسل، وأجيال دورة الحياة، وإعادة المحاولة المحدودة، وحماية الاستجابات القديمة. تحل التحديثات المستندة إلى الكتل محل تأخيرات التحديث الثابتة لعروض الصفحة الرئيسية والكتل المفتوحة. تدعم ترطيب REST وتأكيدات الكتل المحدودة إشعارات الكتل عبر WebSocket. أصبحت حسابات جدول المندوبين، وحالة التعدين، والمكافآت، والرسوم، وحدود الجولات مستقرة الآن، مع إحصائيات كتل ونظراء متسقة ودعم اختياري لـ Redis. تتعامل هوية ذاكرة التخزين المؤقت بشكل صحيح مع الكتل الجديدة واستبدالات التفرع (forks) بنفس الارتفاع.
يتم تحديد الموقع الجغرافي للنظراء عبر GeoJS مع تطبيع مخزن مؤقت وتدهور يعتمد على اسم المضيف فقط. يدعم وكيل بلاط OpenStreetMap المعتمد والمخزن مؤقتاً والمحدد بمهلة زمنية والمحدود لكل IP عمليات النشر عبر الإنترنت العادي وTor. يظل Redis موصى به للتخزين المؤقت للاستجابات والإحصائيات المستمرة، لكن فشل Redis لم يعد يؤدي إلى تعطل HTTP الأساسي أو خدمة الملفات الثابتة.
تعزيز الأمان والخصوصية
تتضمن حدود الطلبات العامة والمتصفح الآن فرضاً دقيقاً لمساحة API قبل التخزين المؤقت وجاهزية ADAMANT، وتحققاً صارماً من العناوين، ومعرفات uint64، والترقيم، والمسارات، والطرق، والمرشحات، ومحدداً داخلياً لـ API بنظام النافذة الثابتة مع هوية عميل مدركة للوكيل ودلو فيضان مغلق عند الفشل. يتم تطبيق رؤوس الأمان، وسياسة أمان المحتوى المقيدة، وأخطاء عامة مستقرة، ومهلات HTTP صريحة، وسجلات وصول مصغرة لسلاسل الاستعلام. يتم عرض قيم مراقب الشبكة من العقد والنظراء كنص فقط والتحقق منها. يغطي التدهور الرشيق حالات فشل Redis، وNode، وأسعار الصرف، والموقع الجغرافي، ومزود الخرائط.
يتضمن المستودع نموذج تهديد مؤرخ ومراجعة للأمان والموثوقية. تم تدقيق الأمان بواسطة cryptofoundry.
تغييرات وقت التشغيل والنشر
يجب على المشغلين الذين يقومون بالترقية من v1.3.0 ملاحظة أن Node.js ^22.18.0 || >=24.11.0 مطلوب، ويجب أن تعمل عقد ADAMANT المكونة بإصدار v0.10.2 أو أحدث. يجب إعداد config.jsonc جديد من config.default.jsonc مع الانتباه إلى nodes_adm وtrustedProxies وredis وgeoLocation وexchangeRates وlog_level. تم استبدال Freegeoip بتكامل اختياري مع GeoJS؛ يؤدي تعطيل الموقع الجغرافي إلى الاحتفاظ ببيانات النظراء واسم المضيف دون بيانات الخرائط المشتقة من المزود. يجب أن تسمح الوكلاء العكسيون وجدران الحماية بمسار /osm-tiles/ من نفس المصدر. لا يتم تضمين أصول public/ التي تم إنشاؤها في المستودع ويجب بناؤها أثناء النشر باستخدام npm run build. يبدأ npm run dev الخلفية وVite معاً؛ بينما يبدأ npm run dev:frontend Vite فقط.
التحقق
اجتاز شجرة المصدر التي تم إصدارها اختبارات ESLint وPrettier، وبناء إنتاجي مع 6,337 وحدة محولة، و226 اختبار وحدة خاص بـ Node، و41 اختباراً حياً لشبكة ADAMANT Testnet API، وعمليات تدقيق كاملة للمكتبات البرمجية مع صفر ثغرات أمنية تم الإبلاغ عنها. لم تؤدِ اختبارات المتصفح عبر 13 مساراً على دقة سطح المكتب والأجهزة اللوحية والهواتف المحمولة إلى أي أخطاء في وحدة التحكم أو تجاوز أفقي.
الإصدار الكامل متاح في GitHub Releases.