لنتعمّق في إصدار Cartesi Machine Emulator v0.21.0؛ هذه المرة محتوى التحديث غنيّ جدًا. يتضمن ذلك مستندات جديدة بالكامل حول «لعبة التحقق» (verification game)، وأداة CLI لتشغيل سير عمل إثبات الاحتيال بنفسك، إضافةً إلى تحسينات في البنية التحتية تهدف إلى رفع سرعة طبقة الحالة (state layer) واستمراريتها. وإليك التفاصيل:🧵↓
https://fxtwitter.com/cartesiproject/status/2089698617829597516

1/ تمت إعادة كتابة الوثائق بالكامل وتم نقلها إلى مستودع كود المُحاكي، مع إضافة فصل يشرح «لعبة التحقق» خطوة بخطوة. هل تريد معرفة مبادئ عمل إثبات الاحتيال في Cartesi من الداخل؟ ابدأ من هنا: https://github.com/cartesi/machine-emulator/blob/v0.21.0/doc/README.md

2/ أصبح بإمكان CLI الآن حساب تجزئات الحساب (computation hashes)، وتتبع شجرة ميركل الخاصة بالمخرجات (output Merkle tree)، وتوليد برهان خاص بمخرج واحد وبرهان جذور شجرة ميركل الخاصة بالمخرجات. يعني ذلك أنه يمكنك تنفيذ معظم العمليات المطلوبة لتشغيل سير عمل إثبات الاحتيال مباشرة عبر سطر الأوامر.

3/ تتيح ميزة نطاق عناوين NVRAM للتطبيقات، عبر برنامج تشغيل Linux UIO، تعيين حالتها مباشرةً إلى نطاق عنوان في الذاكرة الفيزيائية. تظل الحالة مستمرة أثناء التقدم بالحالة (advance state)، دون الحاجة إلى حمل تكلفة مزامنة ذاكرة التخزين المؤقت لصفحات النواة (kernel page cache)، لذا حتى مع استمرار نمو حالة التطبيق تظل سرعة الكتابة فعّالة.

4/ الآلات المخزّنة بنظام التدحرج (Rolling stored machines): يدعم CLI الآن استخدام حالات الآلات الموجودة على القرص للتقدم، كما يدعم التراجع (revert) عبر استنساخ لقطات (snapshots) مخزّنة؛ ويمكن إجراء هذه العمليات محليًا أو على خوادم بعيدة. وهذا يوفر خيارًا لحفظ الحالة بشكل مستمر للتطبيقات التي لا ترغب في أن تكون الحالة الكاملة للآلة مقيمة في الذاكرة.

5/ تعزيز آلية دفع الحالة (state advancing): في كل مرة يتم فيها دفع الحالة، تنتهي الآن بنتيجة واضحة وقابلة للإثبات—أي «قبول» (accepted)، أو «رفض» (rejected)، أو «إيقاف» (halted)، أو «تجاوز حد الدورات» (out of cycles). وهذا أمر حاسم عند دخول النزاع مرحلة «لعبة التحقق»، لأنه في تلك المرحلة يجب أن تكون كل نتيجة قابلة للإثبات، وليس مجرد قابلة للملاحظة.

6/ تنبيه لمطوري التكامل: يتضمن هذا الإصدار بعض التغييرات التي قد تكون مكسّرة للتوافق (breaking changes)، بما في ذلك ملفات العناوين العامة التي تم إعادة تسميتها، وإعادة هيكلة خيار التراجع (revert flag)، والترقية إلى بروتوكول JSON-RPC. لا تغيّر هذه التغييرات سلوك المُحاكي الأساسي، لكنها تعني ضرورة تحديث جزء من كود الاستدعاءات. راجع سجل التغييرات (changelog) للاطلاع على التفاصيل الكاملة.

7/ يتضمن الإصدار أيضًا: أدوات مساعدة جديدة بلغة Lua (بما فيها مكتبة شجرات تجزئات لبناء نموذج أولي لبروتوكول إثبات الاحتيال)، ودعم تعليمات RISC-V Zcb المضغوطة (للاستخدام مع نواة مبنية عبر GCC 14)، ودعم الإكمال التلقائي bash الخاص بـ CLI، وضمانات أقوى لاستمرارية اللقطات (snapshots).

8/ لمعرفة تفاصيل الإصدار الكاملة، راجع: https://github.com/cartesi/machine-emulator/releases/tag/v0.21.0

أيها المطورون، هذا تحديث مُعد خصيصًا لكم. نرحب بكم في التعمق في وثائق «لعبة التحقق» الجديدة، وتجربة أدوات إثبات CLI، وطرح الأسئلة أو مشاركة الملاحظات على Discord: https://discord.gg/cartesi

إعادة نشر: https://x.com/cartesiproject/status/2089698617829597516