Dolos يقدم نظام بيانات خفيف الوزن يعتمد على Rust لمطوري Cardano
عرضت TxPipe نظام Dolos خلال ساعات العمل الخاصة بمطوري Cardano، ووصفت نظام بيانات خفيف الوزن مكتوب بـ Rust يهدف لتقليل ضغط البنية التحتية ومنح المطورين وصولًا مرنًا إلى بيانات البلوكشين.
By SongMarketCap
استضافت ساعات العمل الخاصة بمطوري Cardano سانتياغو كارموغا، الرئيس التنفيذي ومؤسس TxPipe، لتقديم عرض تقني عن Dolos، وهو نظام بيانات خفيف الوزن لـ Cardano مكتوب بـ Rust. ركزت الجلسة على تنوع البنية التحتية، والتقسيمية، وتسهل الوصول إلى بيانات بلوكشين Cardano للتطبيقات والمحافظ والخدمات الخلفية.
تم تقديم Dolos كأداة مكملة، وليس كبديل للنظام الحالي لـ Cardano. حيث أن هدفه أكثر تحديدًا، في توفير طبقة استعلام مرنة للفرق التي تحتاج إلى بيانات موثوقة من الشبكة دون الحاجة إلى تشغيل حزمة البنية التحتية الكاملة.
أهداف Dolos لتجربة مطوري Cardano والوصول للبيانات
تقوم TxPipe ببناء أدوات مفتوحة المصدر لمطوري Cardano، ويتماشى Dolos مع هذا التركيز الأوسع على تحسين تجربة المطورين. قال كارموغا إن إحدى المشكلات الرئيسية الأولى التي واجهها في منظومة Cardano كانت صعوبة الحصول على البيانات من النظام.
في بعض منظومات البلوكشين، يمكن للمطورين استعلام نقطة نهاية للحصول على معلومات حول الكتلة الأحدث أو معاملة أو حالة عنوان. ولكن في Cardano، تكون العملية أكثر تعقيدًا من الناحية التقنية لأنها تتطلب بروتوكولات Ouroboros المصغرة، التنسيقات الثنائية، ونموذج شبكة مخصص.
وفقًا للعرض التقديمي، تم إنشاء Dolos كبديل ونظام مكمّل لحالة استخدام محددة، حيث يمنح المطورين طريقة أكثر غنى ومرونة للاستعلام عن البيانات من شبكة Cardano. مما يجعله مهمًا للفرق التي تبني التطبيقات، المحافظ والخدمات البيانية التي لا تحتاج إلى المشاركة في الإجماع أو إنتاج الكتل، لكنها تحتاج إلى إطار عمل ثابت لقراءة بيانات الشبكة.
كما قارن كارموغا نظام Dolos بنظام DB Sync. حيث يظل DB Sync أداة شائعة للوصول العميق إلى بيانات Cardano المستندة إلى SQL، لكنه يتطلب وجود node لـ Cardano، PostgreSQL وعامل مزامنة. يستهدف Dolos استخدامات التطبيقات التي تعرف بالفعل البيانات المحددة التي تحتاجها ويمكنها استخدام واجهات برمجة تطبيقات أكثر كفاءة بدلاً من تشغيل قاعدة بيانات SQL ديناميكية كاملة.
نظام بيانات Cardano المستند إلى Rust يدعم Blockfrost، Kupo وUTXRPC
يوفر Dolos عدة واجهات برمجة تطبيقات للتطبيقات الخارجية. واحدة منها هي واجهة gRPC باستخدام مواصفات UTXRPC، المصممة لحالات الاستخدام التي يكون فيها التواصل الثنائي المضغوط والاستعلامات منخفضة السرعة هامًا. كما يضم Dolos واجهة API مُصممة على نمط Blockfrost، مما يسمح للفرق التي تستخدم بالفعل نقاط نهاية Blockfrost بتوجيه تطبيقاتها الحالية نحو Dolos مع تغييرات أقل في التكامل.
ذكرت TxPipe أنها عملت عن كثب مع فريق Blockfrost واستخدمت اختبارات الامتثال الخاصة بـ Blockfrost للتحقق من توافر التوافق مع نقاط النهاية. ووفقًا لكارموغا، يجتاز Dolos أكثر من 900 اختبار امتثال، رغم أنه لا يدعم كل نقطة نهاية من Blockfrost بسبب استثناء بعضها بعد مراجعة التكلفة والمنفعة.
كما يوفر Dolos واجهة API مصغرة على نمط Kupo تركز على مجموعة UTXO، البيانات والخوامات، باستخدام أنماط استعلام مألوفة لمستخدمي Kupo. بالإضافة إلى ذلك، يوفر بروتوكولات Mini Client من Cardano، بما في ذلك استعلامات الحالة المحلية والمزامنة مع الشبكة. مما يسمح لأدوات معينة تتوقع التفاعل مع Node مكتوب بلغة Haskell بالاتصال بـ Dolos واستخدام جزء من نفس واجهة API.
يضع هذا التصميم نظام Dolos كمحوّل بنية تحتية لتطبيقات Cardano. يمكن للمحافظ، بُناة المعاملات، المستكشفين وأدوات الوسط استخدام أنماط وصول مختلفة بناءً على ما إذا كانوا يحتاجون إلى التوافق مع Blockfrost، استعلامات UTXO على نمط Kupo، أداء UTXRPC أو واجهة مقبس أقرب إلى بيئة Node قياسية لـ Cardano.
نموذج تخزين النافذة المنزلقة وافتراضات الثقة لعقد الترحيل
يتضمن Dolos بعض التنازلات الواضحة. حيث أشار كارموغا إلى أن Dolos لا يجري إجماعًا كاملاً أو تحققًا كاملًا من الكتل عند سحب البيانات. وبدلاً من ذلك، يتصل عبر بروتوكولات Node to Node مع عقدة ترحيل، سواء محلية أو عامة، يتم اختيارها من قبل المشغل كمصدر للبيانات. وهذا يخلق افتراض ثقة بين Dolos وعقدة الترحيل المستخدمة.
بالنسبة لمطوري التطبيقات، يمكن أن يناسب هذا النموذج حالات استخدام الوصول إلى البيانات حيث لا تحتاج الفرق إلى تشغيل حزمة Node محلية كاملة. وتم التشبيه خلال الجلسة بأن DB Sync يعتمد أيضًا على نظام Node في الخلفية كمصدر بيانات، بينما يمكن لـ Dolos الاتصال بعقدة ترحيل دون الحاجة إلى مقبس Node مكتوب بلغة Haskell محليًا.
أحد الميزات التقنية التي تم تسليط الضوء عليها في العرض التقديمي هو نموذج تخزين النافذة المنزلقة الخاص بـ Dolos. يمكن للمشغلين الاحتفاظ بالتاريخ الكامل للشبكة، ولكن يمكنهم أيضًا اختيار نافذة زمنية محدودة. في هذا الإعداد، يحتفظ Dolos بالكتل، المعاملات، السكريبتات، والبيانات ذات الصلة بالفترة المحددة بينما تتم إزالة البيانات الأقدم من التخزين المحلي. وهذا يمكن أن يقلل من متطلبات القرص للتطبيقات التي تحتاج فقط نشاط الشبكة الحديث بدلاً من التاريخ الكامل بدءًا من حقبة Byron.
كما عرضت TxPipe بيانات الأداء من مثيلات Dolos على الشبكة الرئيسية. ووفقًا للوحة المعلومات التي تم عرضها خلال الجلسة، كانت إحدى المثيلات تعالج حوالي 180 طلبًا في الثانية، مع زمن انتظار يبلغ في 99% من الحالات أقل من 800 مللي ثانية وفي 50% من الحالات حوالي 4 إلى 5 مللي ثوانٍ. وربط كارموغا هذه النتائج بأن Dolos هو مكوّن خفيف الوزن مكتوب بلغة Rust، جنبًا إلى جنب مع تخزين محلي يعتمد على القيم المفتاحية، أشجار LSM، مرشحات Bloom واستراتيجيات فهرسة محددة.
تضمن العرض أمثلة عملية على استخدام Dolos، بما في ذلك Lace Anatomy، وهو مستكشف شبكة موجه للمطورين يعمل على Dolos كخلفية له دون الحاجة إلى DB Sync. كما أشار كارموغا إلى نقاط نهاية منصة Demeter وفِرق أخرى في منظومة Cardano تستخدم Dolos في الخلفية للوصول إلى البيانات.
يقدّم Dolos لتطبيقات Cardano خيار خلفية يمكن أن يخدم أنماط وصول على نمط Blockfrost وKupo وUTXRPC دون الحاجة إلى DB Sync لكل حالة استخدام. بالنسبة للمحافظ، المستكشفين وخدمات البيانات، فإن الفرق التشغيلي هو توفير طريق أخف للوصول إلى بيانات شبكة Cardano عندما لا تكون المشاركة الكاملة في الإجماع جزءًا من متطلبات البنية التحتية.