المؤلف: Rachit Srivastava، Avail builder؛ الترجمة: Golden Finance xiaozou
Monad هي سلسلة L1 متوافقة مع EVM، ولكن مع بعض إعادة التفكير الرئيسية حول الركائز الأساسية لـ Ethereum. ولذلك فإن Monad قادر على معالجة ما يصل إلى 10000 معاملة في الثانية. أصدرت Monad مؤخرًا devnet الخاصة بها.
يطبق المفهومين التاليين: خطوط الأنابيب والإدخال/الإخراج غير المتزامن. خط الأنابيب هو أسلوب لتحقيق التوازي عن طريق تقسيم المهمة إلى سلسلة من المهام الأصغر التي يمكن معالجتها بالتوازي. يعد الإدخال / الإخراج غير المتزامن أحد أشكال معالجة الإدخال / الإخراج التي تسمح لوحدة المعالجة المركزية بتنفيذ التنفيذ المتزامن أثناء تقدم الاتصال.
ما الذي يميز MonadBFT إذن؟ MonadBFT عبارة عن خوارزمية BFT ذات مرحلتين مع نموذج استجابة متفائل، وذلك باستخدام حمل الاتصالات الخطية في الحالة العامة وحمل الاتصالات التربيعية في حالة المهلة.
نفترض أدناه أن جميع العقد لها نفس الاهتمامات.
--MonadBFT يتطلب ثلثي العقد للوصول إلى الإجماع.
--يرسل القائد كتلة جديدة مع "QC" أو "TC" (توقيع العتبة عبارة عن تقنية تشفير توزع القدرة على إنشاء التوقيعات الرقمية على أطراف متعددة. ولا يمكن لطرف واحد أن يمثل المجموعة بالكامل للتوقيع، يجب أن تتعاون مجموعة فرعية ("العتبة") من الأطراف لإنشاء التوقيع.)
--يتحقق المدقق من الكتلة ويرسل ردًا بنعم أو لا إلى القائد. يستمد القائد شهادة مراقبة الجودة (شهادة النصاب القانوني) من خلال تجميع أصوات نعم ولا (عبر توقيع العتبة).
--إذا فشل التحقق، فسيقوم المدقق ببث رسالة انتهاء المهلة الموقعة إلى جميع العقد. تتضمن هذه الرسالة أعلى مراقبة الجودة التي لاحظها المدقق. إذا تجاوزت طلبات المهلة المتراكمة بواسطة أي مدقق 2/3 من عدد المدققين، فسيتم إنشاء TC (شهادة المهلة) وإرسالها إلى القائد التالي.
--يمكن لكل مدقق إنهاء الكتلة المقترحة في الجولة k بعد حصوله على جولة k+1 من مراقبة الجودة.
--إذا افترض أن القائد يتصرف بشكل ضار في الجولة k+1، في الجولة k+2، فسيقوم مدقق واحد على الأقل بإنشاء TC للجولة k+1، وفي الجولة k+2 سيقوم القائد بفحص وإنشاء TC لهذه الجولة.
تأخير التنفيذ
في الايثيريوم، يعد التنفيذ شرطًا أساسيًا للتوافق، لذلك عندما تتفق العقد على كتلة، فإنها توافق على قائمة المعاملات في الكتلة إجماع، أي الإجماع على جذر Merkle الذي يلخص جميع الحالات بعد تنفيذ قائمة المعاملات هذه. لذلك، يجب على القائد تنفيذ جميع المعاملات في الكتلة المقترحة قبل مشاركة الاقتراح، ويجب على العقد التحقق من صحة تنفيذ هذه المعاملات قبل التصويت للرد.
كما يتبين مما سبق، بعد تحديد تسلسل المعاملة رسميًا، يتم تحديد الحالة الحقيقية بالكامل. يتطلب الكشف عن الحالة الحقيقية التنفيذ، ولكن الحالة الحقيقية محددة بالفعل. هذا هو أساس تحسين Monad. يستفيد Monad من هذه الرؤية ويلغي متطلبات تنفيذ العقدة قبل التوصل إلى الإجماع. تتعلق اتفاقية العقدة فقط بطلب المعاملات الرسمي، حيث تقوم كل عقدة بشكل مستقل بتنفيذ المعاملات في الكتلة N وتبدأ في التوصل إلى توافق في الآراء بشأن الكتلة N+1.
يستخدم نهج Ethereum الإجماع لتنفيذ النسخ المتماثل لآلة الحالة بطريقة صارمة للغاية: بعد أن تصل العقد إلى الإجماع، نعلم أن الأغلبية المطلقة من العقد توافق على الترتيب الرسمي والحالة الناتجة عن هذا الترتيب. خفف Monads هذه الصرامة إلى حد ما.
--نهائية الموناد هي فتحة واحدة (ثانية واحدة)
--نهائية نتيجة تنفيذ المعاملة (نجاح أم فشل؟ ما هو الرصيد بعد ذلك؟) ) عادةً ما يكون التأخير أقل من ثانية واحدة على العقدة الكاملة.
--يمكن لأي شخص يريد الاستعلام بشكل آمن عن نتائج المعاملات دون تشغيل عقدة كاملة تشغيل عميل خفيف للاستعلام عن أرصدة العقدة الكاملة باستخدام إثباتات Merkle. في هذه الحالة، سيتم تأخير الاستعلام بسبب زمن الوصول لجذر Merkle.
تكلفة الحمل
هناك رسوم لإجراء معاملات الشبكة في كتل على الشبكة. هذه الرسوم منفصلة عن تكاليف التنفيذ. يستخدم رصيد الاحتياطي لتغطية التكاليف الدفترية. يتم استخدام رصيد التنفيذ لدفع تكاليف تنفيذ التجارة.
التنفيذ الموازي
يستخدم Monad التنفيذ المتفائل. وهذا يعني أن Monad سيبدأ في تنفيذ المعاملات قبل اكتمال مجموعة سابقة من المعاملات في الكتلة. في بعض الأحيان (ولكن ليس دائمًا) يؤدي هذا إلى أخطاء في التنفيذ.
إذا كانت جميع المعاملات تعتمد على المعاملة السابقة، فإن التنفيذ المتفائل سيحل هذه المشكلة عن طريق تتبع بيانات الإدخال المستخدمة عند تنفيذ المعاملة 2 ومقارنتها ببيانات مخرجات المعاملة 1.
إذا كانت البيانات غير متسقة واكتشفنا أن المعاملة 2 استخدمت بيانات خاطئة عند التنفيذ، فسنحتاج إلى تنفيذها مرة أخرى باستخدام البيانات الصحيحة. عندما يقوم Monad بتنفيذ المعاملات بالتوازي، يتم "دمج" تحديثات الحالة لكل معاملة بالتسلسل.
MonadDb
MonadDb هي قاعدة بيانات مخصصة تستخدم لتخزين حالة blockchain. يستخدم معظم عملاء إيثريوم قواعد بيانات ذات قيمة أساسية، والتي يتم نشرها كهياكل بيانات B-Tree (مثل LMDB) أو LSM-Tree (مثل LevelDB وRocksDB).
تقوم MonadDb بنشر هياكل بيانات PatriciaTrie على القرص وفي الذاكرة. يقوم Monad بتنفيذ معاملات متعددة بالتوازي. عندما تحتاج المعاملة إلى قراءة الحالة من القرص، بدلاً من انتظار اكتمال العملية، يجب أن تبدأ عملية قراءة وتبدأ في معالجة معاملة أخرى في هذه الأثناء. ص>