مستقبل بيئات التنفيذ

متقدم5/13/2024, 10:22:30 AM
يعزو بنجامين فونك، باحث مؤسسة الاستثمار في العملات المشفرة Archetype، زحمة طبقة التنفيذ إلى الوصول الفعال إلى الحالة والحساب. وقد قيم الخيارات التصميمية التي اتخذتها بيئات التنفيذ المتكاملة والموديلات في تحقيق أداء أعلى وتوسيع نطاق التطبيقات على السلسلة.

تم إعادة توجيه العنوان الأصلي: مصمم Blockspace: مستقبل بيئات التنفيذ

في التسع سنوات منذ إطلاق إيثيريوم أول سلسلة كتلية لامركزية قابلة للبرمجة، واجهت العملات الرقمية عدة عقبات في سعيها لتوسيع تطبيقاتها اللامركزية لمليارات المستخدمين. ومن أجل تطوير حلول التوسيع لمعالجة هذا، دعمت الصناعة العملات الرقمية باستمرار وطورت أنواعًا جديدة تمامًا من سلاسل الكتل لحل مشكلة الأداء.

ومع ذلك، لم يتم تحديد وتحديد بشكل سيء "مشكلة الأداء". وقد حزمت النكات الاصطناعية مثل "المعاملات في الثانية" ما هي في الواقع مقارنات بين التفاح والبرتقال التي لا تتطلب عملًا حسابيًا مكافئًا. كما يلف النقص في التفاصيل في هذه القياسات قدرتنا على تقييم التأثيرات المستقلة لمكونات سلسلة الكتل على الأداء، مما يلهينا عن النهج المبدئي لتحديد مجموعات التحسينات التي يمكننا إجراؤها لحل المشاكل المترابطة بشكل كبير.

على الرغم من هذه الضبابية، لقد شهدنا تحسنات موثوقة ومستدامة في قدرة توسيع سلسلة الكتل على مدى السنوات القليلة الماضية. بينما تتقدم إيثريوم من خلال خريطة طريقها المتمحورة حول rollup، فإن موجة جديدة من rollups و coprocessors تظهرتوافر البيانات(DA) الطبقات، والطبقات L1 التنافسية تظهر - كل منها يتميز بخيارات تصميم فريدة لتوفير بيئات أكثر أداءً للمطورين لبناء تطبيقات dapps قابلة للتطوير وصديقة للمستخدمين.

اليوم، أدى إدخال EIP4844 وطبقات DA البديلة إلى تخفيف Engأ Eng EngEng. على الرغم من هذه الخطوة الحاسمة، تشير الأدلة إلى أن هناك Eng EngEngEngEng EngEngEngEngEngEngEng. في الشهر الماضي،قاعدةجمع1.57 مليون دولار في رسوم المعاملات في يوم واحدبينما يدفع فقط 5 ألف دولار في تكاليف توفر البيانات إلى إيثريوم. وهذا يشير إلى أن العمل الحسابي المطلوب للتحقق ومعالجة تحديثات الحالة ما زال يشكل عقبة حرجة وفرصة للتحسين.

سيقوم هذا القطع بتقييم الخيارات التصميمية التي اتخذتها بيئات التنفيذ المتكاملة والمعمارية في طريقها لحل مشكلة الأداء الأعلى وتوسيع نطاق التطبيقات التي يمكن أن تعيش على السلسلة.

تحديات اليوم

يمكن مقارنة أداء طبقة التنفيذ وفقًا للعمل الحسابي الذي تحققه العقد المنفذة مقارنة بوقت كتل سلاسلهم، أو "الغاز المحسوب في الثانية".

مع ذلك في الاعتبار، يمكننا تضييق أزمات طبقة التنفيذ إلى عاملين مترابطين: الوصول غير الفعال إلى الحالة والحساب غير الفعال.

يشير الوصول الغير كفء إلى التكلفة الإضافية لاسترجاع وتحديث حالة سلسلة الكتل، والتي يمكن أن تبطئ معالجة المعاملات. من ناحية أخرى، فإن الحساب غير الكفء هو وظيفة للتكلفة الإضافية التي تتكبدها الخوارزميات أثناء تنفيذ العمليات والانتقالات الحالية، والتي يمكن أن تشمل كل شيء بدءًا من عمليات النقل البسيطة إلى العقود الذكية المعقدة والتحقق من التوقيعات.

هذه العقبات متبادلة التعزيز - يمكن أن تؤدي التأخيرات في الوصول إلى الحالة إلى تمديد الوقت اللازم للحساب، في حين يمكن أن تضغط الممارسات الحسابية غير الفعالة على إدارة الحالة. علاوة على ذلك، تتطلب التحسينات المقترحة لمعالجة هذه المشاكل في كثير من الأحيان تحسينات نظامية مثل التجزئة أو اعتماد الهندسة المعمارية الخالية من الحالة، التي تعزز وصول الحالة وكفاءة الحساب لتحسين أداء التنفيذ.

عائق رقم 1: الوصول غير الكفء إلى الحالة

تكلفة وسرعة الوصول المطلوبة للوصول إلى حالة سلسلة الكتل حاسمة لبيئات التنفيذ الفعالة ويمكن تقديرها إلى مشكلة تضخم الحالة.

في تقنية سلسلة الكتل، يتم إدارة وتحديث حالة العالم من خلال هياكل بيانات محددة تسمى الأشجارالأشجار تعتبر جزءًا أساسيًا من تقنية البلوكشين، حيث توفر وسيلة آمنة وفعالة لمنح الأطراف الخارجية لعقد التنفيذ ضمانات حول الحالة الصحيحة للبلوكشين. يُنشئ كل تحديث داخل شجرة بيانات جذر هاش جديد، الذي يمكن للعملاء الخفيفين الإشارة إليه للتحقق من المعاملات وأرصدة الحسابات دون الحاجة للحفاظ على سلسلة الكتل بأكملها.

إيثيريوم يعتمد على الأخص بنية بيانات تعرف بشجرة ميركل باتريشيا (MPT)، التي تتكون من@chiqing/شجرة ميركل باتريشيا الموضحة-ae3ac6a7e123">four sub-tries.

مع إضافة إيثريوم لمزيد من العقود الذكية والرموز إلى حالته، يصبح شجرته الحالية أكبر وأكثر تعقيدًا. مع نمو الحالة، يتطلب مزيدًا من مساحة التخزين، ومزيدًا من الموارد الحسابية لمعالجتها، ومزيدًا من النطاق الترددي لنقلها. في الوقت نفسه، تظل قيود الأجهزة للعقد تقريبًا كما هي.

يؤثر نمو الحالة هذا مباشرة على أداء Ethereum لأن الحالة مخزنة في القرص، وتترتب على عمليات القرص تكاليف عالية. في حين أن الوصول إلى البيانات من سجل وحدة المعالجة المركزية يمكن أن يستغرق 0.1 نانوثانية، يمكن أن يستغرق بين 10 و 100 ميكروثانية(100x–1000x أبطأ)للوصول إلى البيانات من قرص، ترجم تقريبًا إلى 200000 تعليمة معالج مركزي يمكن أن تكون قد تم تنفيذها في تلك الفترة. وهذا يعادل تقديرًا محافظًا لـ 36 تحويل ERC-20 الذي يمكن أن يكون!

ومن تفاقم هذه المشكلة، أن لدى سلاسل الكتل أنماط وصول غير كفئة للقراءة والكتابة إلى الحالة. على سبيل المثال، فإن الهيكل غير التسلسلي لشجرة ميركل باتريشيا يؤدي بشكل طبيعي إلى عمليات الإدخال/الإخراج من وإلى مواقع متنوعة غير قابلة للتنبؤ على القرص. الطبيعة العشوائية لمدخلات المعاملات والتغييرات الحالية التي تُثيرها تؤدي إلى نمط وصول للبيانات مبعثر يبطئ بشكل كبير عملية التحقق والتحديث من الحالة ويستخدم فقط جزءًا منسعة جهاز الأجهزة الأساسية.

في النهاية، البنيات الأساسية لإدارة الدولة لسلاسل الكتل بعيدة كل البعد عن تحقيق إمكانيتها المطلقة، ويمكن إجراء تحسينات كثيرة لتحسين الكفاءة الحسابية.

نقطة ضعف #2: الحساب غير الكفء

تواجه طبقات التنفيذ أيضًا زجاجة عنق الحساب غير الفعال، والتي تظهر بطرق مختلفة.

أولاً، العديد من العمليات تقوم بتنفيذ التحويلات تسلسليًا، مستغلة بشكل غير كامل معالجات النوى المتعددة الحديثة القادرة على معالجة عمليات متعددة في نفس الوقت. يؤدي هذا التنفيذ التسلسلي إلى فترات توقف حتمية لوحدة المعالجة المركزية بين التحويلات، مهدرًا الموارد الحسابية القيمة.

بالإضافة إلى ذلك، ينطوي استخدام الآلات الافتراضية على ترجمة عمليات العقد الذكية عالية المستوى إلى بايت كود - وهو رمز منخفض المستوى غير متعلق بالمنصة - الذي يتم تنفيذه تعليمة تلو التعليمة. يقدم هذا العملية الترجمة والتنفيذ سوء التشغيل الكبير، خصوصا لتطبيقات تتضمن مهام محددة للتطبيق معقدة ومتكررة بشكل متكرر.

هذه الفجوات تؤدي إلى استخدام غير فعال للموارد الحسابية وتعيق أداء طبقات التنفيذ.


الحلول: وصول غير كفء للحالة

هناك عدة طرق مميزة يتم بها تحسين معدل الحصول على الحالة وتحديثها من عتاد العقدة التنفيذية، بما في ذلك تبسيط الهياكل البيانات المعقدة والعثور على طرق لتقليل عمليات إدخال/إخراج القرص المكلفة التي تؤدي إلى انتفاخ الحالة.

عدم الجنسية والحوسبة في الذاكرة

بعض طبقات التنفيذ تتعامل مع زيادة الحالة عن طريق قبولها ببساطة في المدى القصير. إنها تقوم بنقل تخزين بيانات الحالة من أنظمة التخزين على القرص البطيء إلى الذاكرة العشوائية ذات الوصول العشوائي السريع. يقلل الوصول إلى معلومات الحالة في الذاكرة العشوائية بشكل كبير من الرسوم الزائدة المرتبطة بعمليات القرص، التي تكون أبطأ وأكثر استهلاكًا للموارد.

ومع ذلك، تتحدى هذه الطريقة المبدأ الأساسي للتفكيك. يتطلب تخزين كميات متزايدة من البيانات الحالية في ذاكرة الوصول العشوائي معدات أكثر تقدما وتكلفة أعلى، مما قد يقيد قدرة الأفراد على المشاركة كمشغلي عقد البيانات. وبالتالي، مع تزايد متطلبات المعدات، يمكن لعدد أقل من الكيانات تحمل تشغيل هذه العقد.

لتحقيق توازن بين جاذبية الحوسبة في الذاكرة مع تقليل الثقة، فإن كل من L1s (مثل إيثريوم) و L2s يسعيان إلى خريطة طريق للقدرة على التوسع تعتمد على فك حزم دور المحقق إلى عقد تنفيذ مركزي منفصل مع العديد من أجهزة التحقق. في هذا النموذج، يتحمل منتجو الكتل عالية الأداء متطلبات الأجهزة للحوسبة في الذاكرة مسؤولية توليد الكتل، ويتم الاعتماد على البراهين الكربتوغرافية (براهين الغش والصحة) من قبل أجهزة التحقق لجعل منتجي الكتل مسؤولين.

ونتيجة لذلك، يجب أن تسمح هذه الأنظمة لمنتجي الكتل بتحقيق أقصى سرعة لديهم لأنه من الممكن توقعهم أن يحتسبوا في الذاكرة، مما يقضي على عمليات إدخال/إخراج القرص تمامًا أثناء التنفيذ. ونظرًا لأن تأخير الذاكرة العشوائية عادةً ما يكون أقل من 100 نانوثانية، يتم تخفيض تأخير الوصول إلى الحالة بمقدار يصل إلى 1000 مرة مقارنة بتنفيذ القرص.

بالتوازي، يتم استخدام إثباتات الاحتيال والصحة بدلاً من التوافق اللامركزي لتوسيع خصائص تقليص الثقة في النظام جنبًا إلى جنب مع قدرته الاستيعابية. نتيجة لذلك، يتم موازنة العقد القوية للعقد القائمة على الكتل بواسطة العقد المدققة الذي يمكن تشغيلها على أجهزة أقل تكلفة بكثير. تقوم هذه العقد بأداء الوظيفة الحرجة للتحقق بشكل مستقل من إثباتات عمليات الانتقال الحالية (أو عمليات الانتقال غير الصالحة) للحفاظ على رؤية دقيقة للحالة دون عبء تخزين حالة سلسلة الكتل بأكملها.

لتيسير هذه العملية بطريقة تقلل من الثقة، يجب على طبقات التنفيذ تنفيذ درجة منعدم الجنسية، وأشهرها مفهوم "عدم الدولة الضعيفة". يتم تحقيق عدم الدولة الضعيفة من خلال الإلزام على منتجي الكتل بتقديم شهادة تشفيرية تعرف بـشاهدإلى عقدة التحقق. يغلف هذا الشاهد كل التغييرات المقترحة في الحالة بواسطة الكتلة الجديدة، مما يمكن المحققين من التحقق من هذه التغييرات دون بيانات تاريخية إضافية.

على الرغم من أنه يمكن تطبيق هذا المفهوم باستخدام هياكل شجرية مختلفة، إلا أن شجرات Verkle يتم تفضيلها غالبًا على شجرات Merkle لكفاءتها. تتطلب شجرات Merkle تضمين جميع تجزئة العقد الأخوية على طول المسار من نقطة البيانات (الورقة) إلى جذر الشجرة لإثبات سلامة البيانات. هذا المتطلب يعني أن حجم الشاهد (دليل سلامة البيانات) ينمو مع ارتفاع الشجرة، حيث تستلزم كل مستوى تجزئة إضافية. وبناءً على ذلك، يصبح التحقق من سلامة البيانات في شجرات Merkle مكلفًا من الناحية الحسابية والمالية، خاصة بالنسبة للمجموعات البيانات الكبيرة. على النقيض من ذلك، تبسط شجرات Verkle هذه العملية، مما يقلل من التكاليف المرتبطة بالحساب والتخزين في إنشاء والتحقق من الكتل الجديدة.

تقديم شجرة Verkle من Ethereum's "Verkle Tree"

تعزز أشجار Verkle هيكل أشجار Merkle التقليدية من خلال تبسيط الاتصالات بين الأوراق والجذر والتخلص من الحاجة إلى تضمين العقد الشقيقة في عملية التحقق. في شجرة Verkle، ينطوي التحقق من دليل فقط على القيمة في العقدة الورقية، والتزام بالعقدة الجذرية، والتزام بياني واحد يعتمد على التزامات متعددة الحدود، والتي تحل محل التزامات متعددة القائمة على الهاشات الموجودة في أشجار Merkle. يسمح هذا التحول لأشجار Verkle بالحفاظ على شهادة ثابتة الحجم، والتي لا تزيد مع ارتفاع الشجرة أو عدد الأوراق التي تم التحقق منها، مما يحسن بشكل كبير كفاءة التخزين والحساب أثناء التحقق من البيانات.

خلال السنوات القادمة، سنرى تنفيذات للحالة اللاحالة تحدث على مستوى L1 و L2 بتكوينات متنوعة. وفقًا لخريطة طريق Ethereum الأخيرة، يمكن للمحققين الاعتماد على بناة الكتل لتقديم أدلة Verkle بشأن حالة بعض الكتل والتحقق من هذه الأدلة الخفيفة بدلاً من الاعتماد على حالة Ethereum مباشرة.

على مستوى L2، فرق مثلMegaETHيطبقون بنشاط مفهوم عدم الحالة في تصميم الدفعات التفاؤلية. في تصميمهم، يولد عقد المتسلسل شاهدًا لكل كتلة يحتوي على قيم الحالة اللازمة والتجزئات الوسيطة أثناء إصدار تجزئة الحالة التي تمثل التغييرات في الحالة. يمكن لعقدة التحقق إعادة تنفيذ أي كتلة من خلال استرداد الشاهد من طبقة DA أو شبكة نظير إلى نظير دون تخزين الحالة بأكملها. في الوقت نفسه، تحدث العقد الكامل تحديثًا لحالته عن طريق تطبيق التجزئات الحالية المنتشرة عبر الشبكة، مما يتيح لها البقاء متزامنة دون إعادة تنفيذ المعاملات أو تخزين تاريخ الحالة بأكمله.

ومع ذلك، فمن الجدير بالإشارة أيضًا إلى أن فوائد عدم وجود حالة والقدرة الناتجة عنها على الحساب في الذاكرة ليست بالحل السحري لأداء طبقة التنفيذ.

معدل TPS في الوقت الحقيقي من "فهم أداء طبقة تنفيذ إيثريوم" لـ MegaETH

كمؤسس لشركة MegaETH، يحدد Yilong Li فيما يليعرض البحثفي تنفيذ Ethereum، هناك عدم كفاءة أخرى في هياكل البيانات وأنماط الوصول onchain التي لا تزال محسنة.

تحسين قواعد البيانات

يعمل الفرق المعنية بطبقات التنفيذ على إيجاد طرق لتحسين هيكل قواعد البيانات أنفسها للقضاء على بعض العقبات التي يواجهها Ethereum وغيرها من سلاسل الكتل المتوافقة مع EVM في التعامل مع الوصول الغير كفء إلى الحالة، والذي يؤثر سلباً على كفاءة الحوسبة.

في الواقع، أدركت قيود تصميمات قواعد البيانات الحالية الموجودة في EVMالوحدة* قرار بالذهاب إلى ما هو أبعد من تحسين الكفاءة الحسابية بحتة لتحقيق التوازي. وجدت Monad أنه حتى بعد تنفيذ التنفيذ المتوازي، لم يروا سوى تسريع طفيف في الأداء لأن طلبات القراءة والكتابة متعددة الخيوط إلى قاعدة البيانات تحجب بعضها البعض. نتيجة لذلك، نفذت Monad قاعدة بيانات متوافقة مع الإدخال/الإخراج الغير متزامن (AIO)، أو الوصول المتوازي، كجزء حاسم من الحل.

الإدخال/الإخراج اللامتزامن

العمليات الإدخال/الإخراج - مثل قراءة من أو كتابة إلى أجهزة التخزين - غالبا ما تخلق Eng، خصوصا مع أقراص القرص الصلب الميكانيكية (HDDs). تتطلب هذه الأقراص حركة المادية لرأس القراءة/الكتابة للوصول إلى البيانات، مما يمكن أن يبطئ بشكل كبير من معالجة البيانات.

تعالج AIO هذا التحدي عن طريق السماح للبرامج بأداء عمليات الإدخال/الإخراج بشكل متزامن مع العمليات الأخرى. بشكل أساسي، يمكن لبرنامج تشغيل عملية إدخال/إخراج والانتقال دون الانتظار حتى يتم الانتهاء منها. يفعل ذلك عن طريق تسجيل وظيفة الرد أو وعد بأن يقوم نظام التشغيل أو مكتبة الإدخال/الإخراج بتحقيقها بمجرد الانتهاء من عملية الإدخال/الإخراج. يسمح هذا النهج الغير متزامن للبرنامج الرئيسي بمواصلة تنفيذ مهام أخرى، مما يحسن الكفاءة العامة من خلال عدم تعطل مهام الإدخال/الإخراج للانتهاء.

يمكن تنفيذ الإدخال/الإخراج اللامتزامن باستخدام كل من أقراص الهارد ديسك التقليدية وأقراص الحالة الصلبة (SSDs)، على الرغم من أن الفوائد أكثر وضوحًا مع أقراص الحالة الصلبة. يمكن لأقراص الهارد ديسك أداء الإدخال/الإخراج اللامتزامن، ولكن طبيعتها الميكانيكية تعني أنها أبطأ بشكل طبيعي من SSDs التي تخزن البيانات على ذاكرة فلاش ولا تحتوي على أجزاء متحركة، مما يؤدي إلى أوقات وصول أسرع.

على سبيل المثال، يستخدم Monad خلفية حالة مخصصة محسنة لتخزين SSD، تدعم مستويات عالية من معالجة البيانات المتوازية وتقلل من تأخير الإدخال/الإخراج. هذا الإعداد أكثر كفاءة من الأنظمة التي تعتمد فقط على تخزين القرص التقليدي أو تلك التي تستخدم قواعد بيانات الذاكرة، والتي قد تواجه لا تزال تأخيرًا من كتابات البيانات المتكررة إلى وقراءات من وسائط تخزين أبطأ.

بالمثل، يستخدم Reth طريقة تفصل عمليات قاعدة البيانات عن محرك تنفيذ EVM الأساسي. يتيح هذا الإعداد لبايت كود EVM تنفيذه بتسلسل على خيط واحد للحفاظ على التناسق بينما تتم إيقاف مهام إدخال/إخراج قاعدة البيانات إلى عمليات متوازية. يستخدم Reth نموذج الممثل - نمط هندسة البرمجيات - لإدارة هذه العمليات المتوازية بفعالية، مضمناً أن عمليات إدخال/إخراج لا تقاطع متفسر EVM.

تردد تجميع الحالة Merklization

واحدة من البنود المستهدفة للتحسين هي تردد تقنين الحالة. النموذج الحالي لإثيريوم في تقنين الحالة بعد كل كتلة يُعرض له عبء كبير، حيث يتطلب كتابات متكررة وقراءات متكررة من القرص وترافرسالات مستمرة في الجزع يعمل الشجرة التقنية عادة عن طريق تجميع التجزئة الوسيطة إلى مجموعات من 16 (تسمى عقدة) وتخزينها في قاعدة بيانات مخزن مفتاح القيمة حيث يكون المفتاح تجزئة العقدة والقيمة العقدة نفسها.

عبور هذه الشجرة للعثور على البيانات وتحديثها يتطلب وصولًا عشوائيًا واحدًا لكل طبقة من الشجرة التي يجب عبورها، وستتطلب عبور شجرة Merkle ساذجة تقريبًاثماني استعلامات قاعدة بيانات متتالية لكل إدخال.

نهج سولانا في تحديث التزام الحالة فقط في نهاية كل حقبة يسمح بتوزيع تكاليف الكتابة على العديد من المعاملات داخل تلك الفترة. إذا تم تعديل إدخال الحالة مرات عديدة داخل نفس الحقبة، فإن كل كتابة لا تتطلب تحديثًا فوريًا لجذر ميركل. يقلل هذا من العبء الحسابي الشامل المرتبط بتحديثات الحالة خلال الحقبة. وبالتالي، يبقى التكلفة المرتبطة بالقراءة من الحالة ثابتة، أو O(1)، لأنه يمكن قراءة الحالة مباشرة دون الحاجة إلى عبور مسار ميركل في كل مرة.

تقليل تردد عملية تقسيم الميركل في إيثيريوم يمكن أن يقلل من التكلفة الإضافية الناتجة عن قراءة وكتابة الحالة، مما يعزز الأداء. ومع ذلك، سيحتاج العملاء الخفيفون إلى إعادة تشغيل تغييرات الكتل لتتبع الحالة بين الحقب أو تقديم معاملات على السلسلة للتحقق من الحالة، وهذا التغيير غير متوافق حاليًا مع إيثيريوم.

هياكل بيانات فعالة ومتخصصة

وعلاوة على ذلك، تعمل هياكل الأشجار المتدرجة داخل عملاء إيثريوم الحاليين عمومًا على تسبب أنماط وصول غير فعّالة إلى الحالة، مما يسهم بشكل أكبر في تضخم الحالة. بينما تكون حالة إيثريوم منظمة على أنها شجرة ميركل قطرية، فإنها يتم تخزينها ثم في قواعد بيانات عملاء إيثريوم مثل مستوى قاعدة البيانات,PebbleDB(التي تستخدمها go-ethereum)، أو MDBX (المستخدمة بواسطة Erigon) التي تخزن البيانات في أشجار ميركل مثلشجرة Bأوشجرة LSM.

في هذا الإعداد، يتم تأصيل هيكل بيانات في هيكل بيانات آخر من نوع منفصل، مما يخلق 'تضخيم القراءة' من خلال التنقل في هياكل الشجرة الداخلية في أجهزة العملاء التي تعمل تحت نظام آخر قائم على شجرة Merkle. يمكن فهم تضخيم القراءة على أنه نتيجة الخطوات المتعددة للوصول إلى المعلومات أو تحديثها الموجودة ضمن حالة ما، مما يتطلب التنقل في الشجرة الخارجية للعثور على نقطة الدخول إلى الـ MPT قبل تنفيذ العملية المطلوبة. ونتيجة لذلك، يتم ضرب عدد عمليات الوصول إلى القرص للقراءة العشوائية بعامل log(n).

لحل هذه المشكلة، تستخدم Monad بشكل أصلي هيكل بيانات Patricia trie على القرص وفي الذاكرة. من الناحية التقنية، يكون Patricia tries في كثير من الأحيان أفضل من هياكل الشجرة الأخرى بسبب توازنها الفريد بين كفاءة الفضاء، والمطابقة الفعالة للبادئة، والعبور الحد الأدنى للعقد. تصميم الشجرة ينهار العقد ذات الأطفال الواحد ويبسط عمليات البحث، الإدخال، والحذف، مما يقلل من عدد عمليات الإدخال/الإخراج المطلوبة. وعلاوة على ذلك، فإن مهارة Patricia trie في التعامل مع المطابقة للبادئة تعزز الأداء في التطبيقات التي تحتاج إلى عمليات بحث سريعة على جزء من المفتاح.

أحد العقبات الأخرى الخاصة بالهياكل المستندة إلى الأشجار هو أن الوصول إلى البيانات أو تحديثها يتطلب عبور عدة طبقات، مما يؤدي إلى العديد من عمليات الوصول التسلسلية للقرص.مختبرات سوفرينتتناول هذه الكفاءة من خلال دعم تكوين شجرة Merkle ثنائية. يقلل هذا التحول الحاسم إلى هيكل ثنائي من عدد مسارات الإمكانية أثناء عملية عبور الشجرة، مما يقلل مباشرة من العمليات الحسابية للتحديثات والإدراجات والبراهين التشفيرية.

تكوين شجرة ميركل الثنائية من "Nearly Optimal State Merklization" لشركة Sovereign Labs

مثال إضافي في هذا الفئة هو فريق Gate تكوين Reth إلىجلب العقد الوسيطة المسبقة من القرص أثناء التنفيذبالإخطار بخدمة جذر الحالة حول فتحات التخزين والحسابات التي تم لمسها.

انتهاء الحالة

انتهاء الحالة هو آلية لإدارة وتقليل حجم حالة سلسلة الكتل عن طريق إزالة البيانات التي لم يتم الوصول إليها لفترة زمنية محددة. بينما يتم وضع انتهاء ضمن فئة "عدم الحالة" في كثير من الأحيان، فمن الأمر الحرج التمييز بين هذه المفاهيم في سياق التنفيذ.

العديمة للحالة تحسن التنفيذ من خلال زيادة قدرة العقد التنفيذي على الحساب في الذاكرة، ولكن التحسينات في التنفيذ تنبع من متطلبات الأجهزة الأكبر عبر عدد أقل من العقد التنفيذية التي تنفذ المعاملات. على النقيض، يمكن تطبيق انتهاء الحالة على سلاسل الكتل مع عدد قليل وكبير من العقد التنفيذية.

هناك طريقتان يتم مناقشتهما بشكل شائع لتنفيذ انتهاء الحالة:

  • انتهاء الصلاحية عن طريق الإيجار: تشمل هذه الطريقة فرض رسوم صيانة، أو "إيجار"، للحفاظ على الحسابات نشطة داخل قاعدة البيانات الحالية. إذا لم يتم دفع الإيجار، يتم أرشفة الحسابات حتى يتم دفع رسوم لاستعادتها.
  • انتهاء الصلاحية حسب الوقت: هنا، يُعتبر الحساب غير نشط إذا لم يتم الوصول إليه - مما يعني عدم وجود معاملات أو تفاعلات - لمدة محددة.

كلا الطريقتين تهدفان إلى الحفاظ على البيانات المستخدمة بشكل نشط فقط في الحالة القريبة والمتاحة بينما تنقل البيانات الأقدم والتي يتم الوصول إليها بشكل أقل إلى حالة مؤرشفة لا تعبئ النظام الرئيسي.

من خلال الحفاظ على حالة أصغر وأكثر قابلية للإدارة، يقلل انتهاء الحالة من "انتفاخ الحالة" الذي يمكن أن يعيق أداء سلسلة الكتل بشكل كبير. يسمح حجم الحالة الأصغر للعقد بالتنقل وتحديث الحالة بسرعة، مما يترجم إلى تنفيذ أسرع لأن العقد يقضي وقتاً أقل في المسح وأكثر وقت في المعالجة.

تقسيم التنفيذ

تعمل التجزئة على تحسين استخدام الموارد والأداء من خلال توزيع المهام والبيانات عبر عدد محدود من العقد المتخصصة (لا يقوم كل عقد بتنفيذ حالة عالمية).

في بنية سلسلة كتل مشتتة، يتم تقسيم الحالة العالمية إلى أقسام متميزة تسمى قطع. كل قطعة تحتفظ بجزء من الحالة ومسؤولة عن معالجة جزء من معاملات الشبكة. تُعين المعاملات إلى قطع محددة بناءً على وظيفة تقسيم محددة، تأخذ في الاعتبار عوامل مختلفة مثل عنوان المُرسِل، عنوان المستلم، والتجزئة من بيانات المعاملة. يقلل هذا من الحاجة إلى التواصل بين القطع ويمكن تنفيذ المعاملات بكفاءة أكبر.

مخطط التجزئة من مقال فيتاليك "الحدود لقابلية توسيع سلسلة الكتل"

يصبح هذا واضحًا عند استكشافبروتوكول NEARتصميم تجزئة،ليلية، الذي يحقق عدم الانتماء لتوزيع الشبكة دون المساس بتقليل الثقة.

في Nightshade، يتم تنظيم البلوكشين كسلسلة منطقية واحدة، حيث يتكون كل بلوك من عدة "شرائح" وتُخصص شريحة واحدة لكل شارد. تحتوي هذه الشرائح على المعاملات والانتقالات الحالية الخاصة بكل شارد. يسمح تضمين الشرائح من جميع الشاردات داخل بلوك واحد بالحصول على رؤية موحدة لحالة البلوكشين بأكمله ويبسط عملية التواصل عبر الشاردات.

بالمثل لفصل بناء صحيح (PBS) على إيثيريوم، يحدد Nightshade بوضوح أدوار العقد الحالية وغير الحالية. على NEAR، يتم تعيين المحققين الحاليين إلى قصاصات معينة وهم مسؤولون عن جمع المعاملات، تنفيذها، وإنتاج شظايا محددة للقصاصة. يحتفظون بالحالة الكاملة للقصاصة التي تم تعيينها لهم ويولدون شهود حالة ليستخدمها المحققون خلال عملية التحقق.

وفي الوقت نفسه، يتم تعيين محققين غير مترابطين عشوائيًا لتحقق أجزاء محددة على أساس كل كتلة. لا يحتاجون إلى الحفاظ على الحالة الكاملة المقسمة ويعتمدون على شهود الحالة التي يوفرها منتجو الكتل من الأجزاء الأخرى للتحقق من تحولات الحالة والمعاملات داخل الشظية. يساعد التعيين العشوائي للمحققين للشظيات في ضمان أمان الشبكة وسلامتها، حيث يجعل من الصعب على الجهات الخبيثة التواطؤ والسيطرة على شظية معينة.

نظرًا لأن كل عقدة في الشبكة تحتاج فقط إلى التعامل مع البيانات الخاصة بشريحتها المعنية بدلًا من بيانات الشبكة بأكملها، يتم تقليل العبء التخزيني والحسابي على العقد الفردية.


الحلول: حساب غير فعال

توازي التنفيذ

حان وقت التعامل مع الفيل في الغرفة: التوازي. توازي تنفيذ المعاملات يمكنه معالجة عدة معاملات عن طريق استخدام موارد الحوسبة المتعددة بشكل متزامن. يسمح هذا بزيادة الإنتاجية حيث يتم توسيع موارد الأجهزة خلال فترات الطلب العالي.

ومع ذلك، من المهم أن نأخذ في الاعتبار أن عدة مكونات تنفيذ يمكن توازيها، والعديد منها يتم تنفيذها بواسطة معالجات مساعدة مثل Lagrange* وعملاء سلسلة الكتل البديلة مثل راقص النارلتحسين أداء البلوكشين بشكل كبير. على وجه الخصوص، يمكن أن يشمل التوازي:

  • توازي الوصول إلى الحالة
  • توازي العمليات المحددة
  • توازي الاتفاق والتنفيذ

توازي الوصول إلى الحالة

توازي الوصول إلى الحالةيجلب فائدتين حرجيتين:

  • توزيع معالجة المعاملات عبر وحدات المعالجة المركزية المتعددة المتوازية يسمح للمعاملات المتعددة بالتعامل بشكل متزامن بدلاً من إجبارها على الانتظار من أجل مورد واحد فقط.
  • عندما تنتظر المعاملة بيانات من التخزين - والتي يمكن أن تسبب تأخيرا كبيرا - لا يبقى النظام خاملا. بدلاً من ذلك، يمكنه التبديل إلى معاملة أخرى جاهزة للتنفيذ. هذا ممكن لأن النوى المتعددة يمكن أن تتولى مهام مختلفة بشكل مستقل وفي نفس الوقت.

التحدى الأساسى فى توازى تنفيذ المعاملات ينبع من إدارة الوصول المتزامن إلى الحالة العالمية المشتركة دون خرق الحمضقواعد التحديث للأنظمة الموزعة. إذا كان لدى سلسلة كتل مجموعة من المعاملات تُنفذ بشكل متواز، فإن بعضها سيتعارض. نتيجة لذلك، تختلف النهجيتان الأساسيتان لتوازن وصول الحالة متوازيًا في مواعيد تكريس الموارد لحل النزاعات: النموذج التنفيذي التشاؤمي (أو قفل الذاكرة) والنموذج التنفيذي التفاؤلي.

تنفيذ متشائم

نموذج التنفيذ المتشائم هو نهج معالجة المعاملات يتطلب من المعاملات أن تعلن عن المتغيرات الحالة التي ستصل إليها (قراءة أو كتابة) خلال التنفيذ. يتم تضمين هذه المعلومات في البيانات الوصفية للمعاملة، مما يتيح للوقت الفعلي تحليل أنماط الوصول قبل التنفيذ.

من خلال فحص أنماط الوصول للقراءة والكتابة، يمكن للوقت الفعلي التعرف على المعاملات ذات مجموعات وصول غير متداخلة، مما يمكن تنفيذ المعاملات غير المتداخلة والقابلة للقراءة بشكل متوازٍ وتحسين الإنتاجية. ينشئ الوقت الفعلي طوابير معاملات متوازية لكل خيط معالج على عقدة محقق، مضمناً معالجة المعاملات ذات أنماط وصول غير متعارضة بشكل متزامن.

نتيجة لهذا الاختيار التصميمي، يستفيد نموذج التنفيذ المتشائم من التحكم الدقيق في تخصيص الموارد، مما يسمح بتقسيم أو تقسيم مساحة حالة سلسلة الكتل.

يؤدي التوازي بشكل فعال إلى إنشاء أجزاء تنفيذ مستقلة متعددة وقابلة للتركيب بشكل متزامن مدعومة بنموذج أمان موحد. يساعد في معالجة ازدحام الشبكة وتحسين تكاليف الغاز من خلال الإدارة الدقيقة للموارد وأسواق الرسوم الديناميكية. من خلال تحديد "النقاط الساخنة" للوصول إلى الحالة (المناطق ذات الطلب المرتفع على المعاملات) ، يمكن للنظام تنفيذ تحسينات مستهدفة مثل تسعير الرسوم المتباينة ، أو تحديد المعدل ، أو تخصيص موارد إضافية للولايات ذات التنافسات العالية. من المهم ملاحظة أن تنفيذ Solana الحالي للتوازي لا تحقيق الكامل لإمكانيات الأسواق المحلية للرسوم.

لضمان توافق البيانات في الوصول المتزامن، يستخدم نموذج التنفيذ التشاؤمي آلية قفل. قبل أن تتمكن المعاملة من الوصول إلى متغير الحالة معين، يجب أن تحصل على قفل على تلك المتغير. يوفر القفل للمعاملة وصولًا حصريًا إلى المتغير، مما يمنع المعاملات الأخرى من تعديله في وقت واحد. يتم إطلاق القفل بمجرد تنفيذ المعاملة، مما يسمح للمعاملات الأخرى بالوصول إلى المتغير.

في سولانامستوى سطح البحرالوقت التشغيلي، الذي ينفذ نموذج التنفيذ التشاؤمي هذا، تحدد المعاملات الحسابات التي ستقرأ أو تكتب خلال التنفيذ. يحلل Sealevel أنماط الوصول وينشئ طوابير معاملات متوازية لكل خيط CPU على عقدة الفاحص. إذا تم الوصول إلى حساب متعدد المرات، يتم إدراجه بتسلسل في طابور واحد لمنع الصراعات. تُجمع المعاملات التي لم يتم معالجتها ضمن وقت الكتلة الرئيسي لعقدة القائد وتُحيل إلى القائد القادم المجدول للمعالجة.

تعمل الأنظمة القائمة على مخرجات المعاملات غير المنفقة (UTXO) على تحسين الكفاءة الحسابية بالمثل. تتضمن UTXOs وحدات محددة من العملة - UTXOs - مرتبطة بمحفظة الفرد. لكل معاملة من معاملات المحفظة المذكورة ، يتم إنفاق UTXOs واستبدالها بأخرى جديدة ؛ يتم إنشاء واحد أو أكثر من UTXOs للمستلم ، يمثل الدفع ، ويتم إنشاء آخر عادة للبادئ ، يمثل أي تغيير مستحق.

من خلال تحديد العقود التي سيتم لمسها، يمكن تنفيذ معاملات تلامس مجموعات منفصلة من العقود بشكل متوازي من قبل تنفيذ العقد (التي يمكن تحقيقها في "الحسابات": نموذج البيانات مع قوائم وصول صارمة). ومع ذلك، للحصول على التوافق مع عقود الذكاء بأسلوب إيثيريوم، تقييدات نظم UTXO مثل Fuel تقيد تنفيذ العقد الذي ينتج الكتل لتنفيذ المعاملات بقوائم وصول تتداخل تتسلسليًا.

ومع ذلك ، فإن نموذج التنفيذ المتشائم له حدود. يجب أن تعلن المعاملات بدقة عن أنماط الوصول الخاصة بها مقدما ، مما قد يمثل تحديا للمعاملات المعقدة أو الديناميكية حيث قد تعتمد أنماط الوصول على بيانات الإدخال أو المنطق الشرطي. يمكن أن تتسبب تعريفات نمط الوصول غير الدقيقة أو غير المكتملة في أداء دون المستوى الأمثل وأخطاء محتملة في وقت التشغيل. بالإضافة إلى ذلك ، يمكن لآلية القفل إدخال زمن الوصول وتقليل التزامن عندما تتنافس العديد من المعاملات على نفس متغيرات الحالة. يمكن أن يشكل هذا الخلاف اختناقات في الأداء ، حيث قد تقضي المعاملات جزءا كبيرا من وقت تنفيذها في انتظار الحصول على أقفال على متغيرات الحالة عالية الطلب.

الأهم من ذلك، يضع هذا النموذج عبء كبيرًا على المطورين، الذين يجب أن يمتلكوا فهمًا عميقًا لتبعيات بيانات عقودهم لتحديد وصولات الحالة الضرورية مسبقًا بدقة. يمكن أن تقدم هذه التعقيدات تحديات، خاصة في تصميم التطبيقات ذات التفاعلات الحالية الديناميكية والمعقدة، مثل التبادلات اللامركزية أو صانعي السوق التلقائيين.

تنفيذ متفائل

على النقيض من ذلك، يعتمد نموذج التنفيذ المتفائل نهج "التكهني" في تنفيذ المعاملات، مما يتيح تنفيذ المعاملات بشكل متوازي دون الحاجة إلى إعلانات وصول الحالة المسبقة.

بدلاً من منع الصراعات قبل حدوثها، يتم تنفيذ المعاملات بتفاؤل بشكل متزامن، مفترضًا أنها مستقلة. يستخدم البرنامج تقنيات مثل نظام التحكم في التنافس متعدد الإصدارات(MVCC) والذاكرة التنفيذية البرمجية(STM) لتتبع مجموعات القراءة والكتابة أثناء التنفيذ. بعد التنفيذ، يكتشف الوقت الفعلي أي تضاربات أو تبعيات. يتخذ تدابير تصحيحية، مثل إحباط وإعادة تنفيذ المعاملات المتعارضة، ولكن يمكنه القيام بذلك عن طريق القراءة من الذاكرة بدلاً من القرص لتحديد المعاملات المتعارضة.

يبسط نموذج التنفيذ المتفائل عملية التطوير، مما يتيح للمبرمجين التركيز على كتابة منطق العقد دون القلق بشأن إعلان أنماط الوصول إلى الحالة. نظرًا لعدم حاجة المعاملات إلى إعلان تفاعلات حالتها مُسبقًا، يتمتع المطورون بمزيد من الحرية في تصميم عقودهم الذكية، مما يسمح بتفاعلات أكثر تعقيدًا ودينامية مع حالة سلسلة الكتل. يُعد نموذج التنفيذ المتفائل مناسبًا بشكل خاص للمنصات التي تدعم حجمًا كبيرًا من المعاملات وتطبيقات القرارات اللامركزية المعقدة، حيث يمكن أن يوفر إنتاجية أعلى وقابلية توسع أكبر من النموذج التشاؤمي.

تم العثور على تنفيذ ملحوظ لهذا النموذج في AptosونقلVM منحركة المختبرات، التي تستخدم تقنية تعرف باسمBlock-STM. في Block-STM، يتم تنفيذ المعاملات أولاً بشكل متوازي؛ ثم يتم تحديد المعاملات المتعارضة وجدولتها لإعادة التنفيذ بناءً على التبعيات المكتشفة. يضمن هذا النهج استخدام موارد المعالجة بشكل مستمر، مما يحسن معدل الإنتاجية مع الحفاظ على سلامة سير العمل التعاملي.

كتلة Aptos's STM من "توسيع تنفيذ تقنية السلسلة القائمة من خلال تحويل لعنة الترتيب إلى نعمة أداء"

على الرغم من مزاياه، يأتي نموذج التنفيذ المتفائل أيضًا مع تحديات. الحاجة إلى اكتشاف الصراعات أثناء التشغيل وإمكانية إلغاء المعاملات وإعادة المحاولات تقدم تكاليف حسابية وتعقيدًا. بالإضافة إلى ذلك، يتطلب الحفاظ على إصدارات متعددة من الحالة وإدارة التكاليف المرتبطة بحل الصراعات تصميم نظام متطور وآليات تحكم في التنافر قوية لضمان نزاهة وأداء البلوكشين.

Block-STM يستفيد من MVCC لإدارة الكتابات المتزامنة بشكل فعال والحفاظ على عدة نسخ من البيانات، وبالتالي منع الصراعات بين عمليات الكتابة المتزامنة. يدمج مخطط جدولة تعاوني لتنسيق مهام التنفيذ والتحقق عبر مواضيع متعددة، مما يضمن أن يتم تأكيد المعاملات بالترتيب الذي بدأت به. يقلل هذا الإعداد من إحباط المعاملات عن طريق استخدام تقدير الاعتماد الديناميكي، مما يسمح للمعاملات ذات التبعيات بالانتظار بكفاءة وحل هذه التبعيات قبل المضي قدمًا.

بالإضافة إلى ذلك، يختلف نموذج الحساب المستخدم من قبل MoveVM عن تلك المستخدمة في EVM الخاص بـ Ethereum، مما يؤدي إلى وقوع أقل عدد من التصادمات. في Ethereum، يتم إدارة الرمز المميز عادةً بواسطة عقد ذكي واحد، مما قد يتسبب في تفاعل عدة معاملات للرموز من خلال نفس عنوان العقد، مما يزيد من احتمال حدوث تعارضات. على العكس من ذلك، يخصص MoveVM الرموز لحسابات المستخدمين الفردية، مما يقلل من فرصة حدوث مثل هذه التعارضات حيث يتفاعل كل معاملة عادةً مع عناوين حسابات مختلفة.

في Monad، يمكن تأطير مجموعة العمليات الأولية التي تُنفَّذ بشكل متوازي على أنها مرحلة إدخال/إخراج، والتي قد تنتج نتائج يمكن التصديق عليها على الفور، والمرحلة التالية "إعادة المحاولة"، التي تتطلب كمية صغيرة من العمل لمعالجة العمليات المتضاربة المتبقية. تظهر هذه العمليات المتضاربة وتُدرج في الذاكرة المؤقتة، مما يسمح بتقليل العبء التنفيذي لأنها تعيش في الذاكرة. بينما تعيش معظم الحالة على القرص، يتم الوصول بسرعة إلى العمليات المتضاربة في وقت التنفيذ.

تقدم نماذج التنفيذ المتشائمة والتفاؤلية نهجًا مميزًا لمعالجة تنفيذ المعاملات وإدارة الحالة في سلاسل الكتل. ينطوي اختيار بين هذه النماذج على تنازلات بين تعقيد الوصول إلى الحالة في المواصفة والنفقات الحسابية المرتبطة بالقرار الديناميكي للصراع.

توازي البيانات والمهام

التوازي البياناتي والمهامي يركزان على تحسين الأداء من خلال توزيع الأعباء الحسابية عبر عدة معالجات: يقسم التوازي البياناتي مجموعة بيانات للمعالجة المتزامنة، بينما يعين التوازي المهامي مهامًا مختلفة لمعالجات مختلفة للتشغيل بشكل متزامن.

هذه البحث عن الأماني متميزة ولكن مترابطة مع التوازي في الوصول إلى الحالة، الذي يدير ويزامن الوصول إلى الموارد المشتركة مثل الذاكرة أو قواعد البيانات لمنع الصراعات وضمان سلامة البيانات عندما تعمل عمليات أو خيوط متعددة بشكل متزامن.

توازي البيانات

تتضمن التوازي البيانات توازي العمليات المحددة عبر عناصر البيانات المتعددة بشكل متزامن. يكون هذا النهج مفيدًا بشكل خاص عندما يتعين تطبيق نفس العملية على مجموعة بيانات كبيرة أو عند أداء عمليات حسابية مكثفة على قيم الإدخال المتعددة. يأتي مفتاح الفتح من توزيع البيانات عبر وحدات معالجة متعددة وتنفيذ نفس العملية بشكل متزامن على عناصر البيانات المختلفة.

واحدة من التقنيات الشائعة لتوزيع البيانات هي تعليمة واحدة، بيانات متعددة(SIMD)، الذي يسمح بتنفيذ تعليمة واحدة بشكل متزامن على عناصر بيانات متعددة. غالبًا ما تحتوي وحدات المعالجة المركزية الحديثة على قدرات SIMD مدمجة، مما يمكنها من تنفيذ عمليات متوازية على نقاط بيانات متعددة. من خلال استغلال تعليمات SIMD، يمكن للمطورين تحقيق تسريع كبير لأنواع معينة من العمليات، مثل الحسابات الرياضية، وتحويلات البيانات، أو معالجة الإشارات.

على سبيل المثال، اعتبر سيناريو حيث يتعين عليك تطبيق وظيفة رياضية معقدة على مجموعة كبيرة من الأرقام. بدلاً من معالجة كل رقم تسلسليًا، يمكن لتعليمات SIMD العمل على عدة أرقام بشكل متزامن. يتم تحقيق هذه المعالجة المتزامنة من خلال تحميل جزء من الأرقام إلى سجلات SIMD في وحدة المعالجة المركزية CPU، تنفيذ الوظيفة الرياضية على جميع الأرقام المحملة بشكل متوازٍ، ثم تخزين النتائج مرة أخرى في الذاكرة. من خلال معالجة عدة أرقام في نفس الوقت، يمكن لتعليمات SIMD تقليل الوقت الكلي للتنفيذ بشكل كبير.

عمل Firedancer على ED25519تثبت التحقق من التوقيع قوة SIMD في تحسين العمليات المعقدة. يشمل عملية التحقق من التوقيع عمليات حسابية داخل الحقول الجالوازية، والتي يمكن أن تكون مكلفة حسابيًا. من خلال استغلال تعليمات SIMD، يمكن لـ Firedancer تنفيذ هذه العمليات على عناصر بيانات متعددة بشكل متزامن، مما يؤدي إلى تحسينات أداء كبيرة. ستكون هذه التحسينات حاسمة في تحسين أداء Solana، التي قامت بتنفيذ توازي في وصول الحالة بالفعل.

توازن المهام

تتضمّن التّوازي المهمّاتيّ توازي المهام أو العمليّات المختلفة داخل برنامج عبر وحدات معالجة متعدّدة. هذا النهج مفيد عندما يتألّف البرنامج من مهام مستقلّة متعدّدة يُمكن تنفيذها بشكل متزامن. من خلال تخصيص كل مهمة إلى وحدة معالجة منفصلة، مثل نواة وحدة المعالجة المركزيّة أو وحدة معالجة الرسوميّات، يمكن تقليص الوقت الكلّي للتّنفيذ.

تستخدم التوازي المهام بشكل شائع في السيناريوهات التي يحتاج فيها البرنامج إلى أداء عمليات معقدة متعددة بشكل متزامن. على سبيل المثال، فكر في تطبيق معالجة الفيديو الذي يحتاج إلى تطبيق مرشحات وتأثيرات مختلفة على تيار الفيديو في الوقت الحقيقي. بدلاً من استخدام كل وحدة حساب لتطبيق كل مرشح بشكل جماعي بشكل تتابعي، يمكن للتوازي المهام توزيع العبء عبر العديد من وحدات المعالجة. يمكن أن تكون وحدة المعالجة الواحدة مسؤولة عن تطبيق مرشح وضوح بينما تطبق وحدة أخرى مرشح تصحيح اللون، وهكذا. من خلال تنفيذ هذه المهام بشكل متواز، يمكن للتطبيق تحقيق معالجة أسرع والحفاظ على تجربة مستخدم سلسة.

لاغرانج@lagrangelabs/a-big-data-primer-introducing-zk-mapreduce-12cf404eab75">ZK MapReduce (ZKMR) يستفيد من توازي البيانات والمهام بكفاءة وإنشاء إثباتات للحسابات الموزعة على مجموعات البيانات الكبيرة. في مرحلة الخريطة، يتم تقسيم مجموعة بيانات الإدخال إلى أجزاء أصغر، وتتم معالجة كل قطعة بشكل مستقل بواسطة عامل مخطط منفصل أو آلة بالتوازي (توازي المهام). يمكن موازاة عملية "الخريطة" داخل كل مهمة مخطط عبر مراكز أو معالجات متعددة (توازي البيانات). وبالمثل ، في مرحلة التقليل ، يمكن موازاة عملية "التقليل" على القيم المرتبطة بكل مفتاح داخل كل مهمة مخفض (توازي البيانات). في المقابل ، يتم تنفيذ مهام المخفض بالتوازي عبر عمال متعددين (توازي المهام).

من خلال الجمع بين توازي البيانات وتوازي المهام ، يمكن ل ZKMR تحقيق التوسع والأداء الفعال للحسابات المعقدة على مجموعات البيانات الضخمة مع الحفاظ على ضمانات المعرفة الصفرية من خلال تكوين إثبات متكرر.

التحقق من إجراء MapReduce تعسفي في ZK من Lagrange's “Introducing ZK MapReduce”

قدرة لاغرانج على إنشاء أدلة تخزين لحسابات SQL عبر @lagrangelabs/الإعلان عن تستنيت يوكليد - قاعدة بيانات إثيريوم الأولى التي يمكن التحقق منها ومعالج ZK-Coprocessor CC4a5595365c"؛> 888،888 فتحة تخزين في دقيقة و 20 ثانية تظهر قوة ZKMR، بالإضافة إلى التوازن والتوازي بين المهام والبيانات التي تعتمدها. وعلاوة على ذلك، الإنجاز الأخير للاغرانجأشجار ريكلييؤكد الورق على ضرورة التوازي في أنه يضمن أن دفاتر الدفع الدفعي للبيانات على السلسلة يمكن حسابها أيضًا في 𝑂(log𝑛)، بغض النظر عن حجم الدفعة.

توازي الاتفاق والتنفيذ

بينما لا يتناول هذا القطعة موضوع الاتفاق، يمكن للبلوكشينات أيضًا توازي عملية الاتفاق والتنفيذ. غالبًا ما تعالج البلوكشينات التقليدية المعاملات بشكل تسلسلي، حيث يتم التوصل إلى اتفاق بشأن معاملات الكتلة (الكتلة N) قبل تنفيذها. يعزز المعالجة المتوازية لمراحل الاتفاق والتنفيذ كفاءة التنفيذ بشكل كبير وهو تقنية يتمثل مثال لها في أنظمة مثل Monad. عندما يتوصل الشبكة إلى اتفاق بشأن الكتلة N، تقوم بتنفيذ المعاملات بشكل متزامن للكتلة السابقة (N-1).

تضمن هذه الاستراتيجية استخدام مستمر وفعال للموارد الحسابية، مما يقلل بشكل فعال من أوقات الخمول ويعزز قدرة الشبكة على معالجة المعاملات بسرعة. تزيد هذه التحسينات من كفاءة النظام وتكلفة رأس المال المطلوبة لمهاجمة الشبكة.

مترجمون وتقليل التكاليف

عند كتابة العقود الذكية بلغات مثل سوليديتي، يتم تجميعها أولاً إلى بايت‌كود مستوى أدنى. ثم، يستخدم EVM مترجمًا لتنفيذ هذا البايت‌كود. يقوم المترجم بقراءة وتنفيذ كل تعليمة تسلسليًا، على غرار ترجمة لغة أجنبية في الوقت الحقيقي أثناء تحدثها. لـ Paradigm’s آخر قطعة على Rethيشير إلى أن هذا يؤدي إلى تكاليف إضافية نظرًا لأنه يجب معالجة كل تعليمة بشكل فردي وتحويلها من بايت كود إلى تعليمات الجهاز خلال وقت التشغيل.

يقوم Reth بمعالجة عدم الكفاءة في EVM من خلال دمج مترجم (JIT) في الوقت المناسب. يترجم هذا المترجم البايت كود إلى رمز آلي أصلي قبل وقت قصير من التنفيذ، متجاوزاً عملية التفسير المستهلكة للموارد التي عادة ما تكون مطلوبة أثناء التشغيل.

البوابةمقال Rethيذكر أن 50% من وقت تنفيذ EVM في نظام قائم على المترجم مخصص لعمليات يمكن نظرياً أن يقوم JIT بتحسينها، مما يشير إلى إمكانية مضاعفة سرعة التنفيذ مع تنفيذ JIT. ومع ذلك، كما يشير Yilong إلىهذا العرض التقديمي, بينما يمكن لـ JIT أن يقلل بشكل كبير من الوقت اللازم لمعالجة تعليمات التشغيل الخاصة بشكل ملحوظ، قد لا يؤثر بشكل جذري على التنفيذ الكلي. هذا يرجع إلى أن جزءًا كبيرًا من 50% من أوقات تنفيذ EVM التي يستغرقها JIT يشملعمليات 'الاستضافة' و 'النظام' (الشريحة 13)، التي لا تصلح لتحسينات JIT مثل "الحسابية" أو "التحكم" بسبب طبيعتها غير الحسابية.

بينما قد تقيد المترجمات الأداء، إلا أنها تخلق فرصة لـ "الترجمة"، مما يزيد نطاق الرمز الذي يمكن الاستفادة منه في آلات الافتراضية الجديدة، ويقلل من الأعباء الزائدة على المطورين لاستخدام مساحة كتلة المصمم. على سبيل المثال، قامت Movement Labs بتطوير Fractal، مما يتيح للمطورين نشر عقودهم القائمة على Solidity على MoveVM. يعمل Fractal عن طريق تجميع Solidity إلى لغة وسيطة تحتوي على تعليمات متحدثة بأكواد EVM، التي يتم بعد ذلك تعيينها إلى أجزاء بايت من MoveVM الخاصة بها، مما يسمح لعقود Solidity بالتشغيل في بيئة MoveVM.

الآلات الحالية المتخصصة والمخصصة

تخصيص طبقة التنفيذ ينطوي على تصميم آلات حالة متخصصة محسنة لتطبيقات محددة. لا يعني هذا فقط أن بيئة التنفيذ يمكن أن تتجاوز الحاجة إلى جهاز افتراضي بالكامل، ولكنه أيضًا يمكن التطبيقات من تصميممجموعة تعليمات البنية المعمارية (ISA)، وهياكل البيانات، ونموذج التنفيذ إلى احتياجاتهم الخاصة. الفائدة الرئيسية من تخصيص ISA لتطبيق محدد تأتي من تقليل التكاليف الزائدة لترجمة أنماط الحوسبة للتطبيق إلى التعليمات العامة لـ ISA التقليدية. تستخدم وحدات المعالجة المركزية العامة مجموعات تعليمات أساسية (أي ، إضافة ، تحميل ، فرع) لدعم تشغيل أنواع مختلفة من البرامج. ومع ذلك، عندما تكرر التطبيقات العمليات نفسها متعددة الخطوات بشكل متكرر، يصبح تنفيذ هذه الأنماط باستخدام سلاسل من التعليمات البسيطة غير كفؤ.

على سبيل المثال، قد تحتاج تطبيقات قواعد البيانات إلى اجتياز هياكل بيانات الشجرة باستمرار، والبحث عن الإدخالات، وتحديث القيم، وإعادة توازن الأشجار. على وحدة المعالجة المركزية العادية ، يتطلب تعيين هذه العمليات ذات المستوى الأعلى تقسيمها إلى تسلسلات طويلة من العمليات الدقيقة منخفضة المستوى ، مثل الأحمال والمخازن والفروع والحساب ، وتنفيذها بشكل فردي على الأجهزة العامة. في المقابل ، يمكن ل ISA المخصص لقواعد البيانات دمج هذه الأنماط المتكررة في تعليمات أوسع محسنة تستفيد من الأجهزة المتخصصة. يمكن لتعليمات "TraverseTree" حساب عناوين الذاكرة وتحميل العقد ذات الصلة ومقارنة المفاتيح باستخدام دوائر المقارنة المتوازية المصممة لتلك العملية. يمكن ل "UpdateEntry" جمع الإدخال مباشرة من تخطيط تخزين قاعدة البيانات المحسن وتعديله والالتزام بالحالة الجديدة في تعليمات واحدة.

هذا يقضي على التكرار الزائد من ترجمة العمليات على مستوى عالٍ إلى تعليمات بسيطة. كما يتيح أيضا للأجهزة تنفيذ التطبيق بشكل أمثل باستخدام تعليمات موازية أقل ولكن أوسع، مصممة بدقة وفقًا لاحتياجاتها.

LayerN’s نوردتظهر فوائد الأداء لبيئات التنفيذ المتخصصة وهياكل البيانات من خلال حالة استخدامهم المحددة لدفتر الطلبات القابل للتحقق. يركز النهج الخاص بطبقة إن على تحسين وضع التجارات في هيكل بيانات دفتر الطلبات، بينما يتم تصميم آلية الأنابيب الخاصة بهم لإدراج الطلبات الجديدة بكفاءة في الموضع المناسب داخل شجرة بيانات دفتر الطلبات. من خلال تخصيص هيكل البيانات وخوارزمية الإدراج وفقًا لمتطلبات محددة لدفتر الطلبات، تحقق طبقة إن إدراج الطلبات بانخفاض التأخير وزيادة الإنتاجية العالية.

بدلاً من ذلك، من الممكن الاعتماد على بيئات التنفيذ متعددة الاستخدامات التي تمكن من وحدات برمجية قابلة للبرمجة بشكل تعسفي يمكن لتطبيقات توصيلها بها لتحسين أدائها. يعطي هذا النهج أولوية لتجربة المطور على الأداء الخام.

لغة سلسةوCWDاستخدم استراتيجية تحقق التوازن بين تحسين الأداء الحسابي الخام وتعزيز تجربة المطور وتوافق النظام البيئي. تركز هذه النهج على استخدام WebAssembly (Wasm) كجهاز افتراضي لتنفيذ الشفرة. أصبح Wasm خيارًا مفضلًا في تطوير الويب بسبب دعم اللغات الواسع ودرجة اعتماده الواسعة.

قرار المطور باستخدام Wasm بدلاً من تنفيذ العميل الأصلي يعكس تفضيلًا استراتيجيًا للقابلية للتعديل والوصول الواسع لبيئة التنفيذ العامة. على الرغم من أن التنفيذ الأصلي، الذي يقوم بتشغيل الكود مباشرة على الأجهزة بدون جهاز افتراضي، قد يقدم أداءً أفضل، إلا أنه يقيد التوافق عبر المنصات ويقلل من إمكانية الوصول للمطورين. على النقيض، يضمن Wasm بيئة تنفيذ موحدة وآمنة عبر منصات مختلفة على الرغم من عدم تحقيق نفس السرعة الخام كالتنفيذ الأصلي. يتماشى هذا التضحية مع فلوينت وفلوينت وتصميم CWD، مع الأولوية لإنتاجية المطور ودمج النظام البيئي الأوسع على حساب كفاءة الأداء القصوى.

نشر CosmWasm (CWD)، على وجه الخصوص، يُوضح هذا النهج بأنه لا يعتمد فقط على Wasm لتنفيذ العقود الذكية وإنما يدمجه أيضًا في إطار أكثر اتساعًا مصمم لدعم تفاصيل عمليات البلوكشين. معززًا بـ"المنطق الطرفي"، يقدم هذا الإطار إدارة حساب متقدمة، وآلية غاز قابلة للتخصيص، وترتيب معاملات مُحسّن. تُسهم هذه الميزات في توفير بيئة تطويرية مرنة وفعالة وآمنة تمكّن المطورين من بناء تطبيقات لامركبة ومعقدة بشكل نسبي بسهولة.

Stackr* يتبع نهجًا مختلفًا من خلال دمج فوائد بيئات التنفيذ المخصصة مع مرونة منصات العقود الذكية التقليدية. يتيح Stackr للمطورين كتابة تطبيقات ك rollups، مما يتيح لهم تحديد قواعدهم الخاصة لترتيب المعاملات والتنفيذ والتكوين. في نموذج Stackr، يمكن للمطورين اختيار ISA وهياكل البيانات ونموذج التنفيذ الذي يناسب متطلبات تطبيقهم بشكل أفضل.

تصميم اللف الميكروي لـ Stackr من "تقديم SDK Stackr"

مع Stackr، يمكن للمطورين تطبيق قواعد انتقال الحالة مباشرة في وقت تشغيل التطبيق بدلاً من أن تكون مقيدة بقواعد جهاز الظاهرة العام، مما يمنحهم القدرة على تبسيط مجموعة التعليمات الخاصة بهم لتكون أكثر كفاءة وإعادة تعريف مجموعة الأشياء التي يمكن القيام بها في بيئة تشغيل.

يؤدي هذا إلى تنفيذ أكثر خفة وكفاءة، حيث يتم تنفيذ منطق العمل في مستوى العميل، مما يقضي على الحاجة إلى استدعاءات وتحقق تكلفة العقود الذكية. ونتيجة لذلك، تتوسع الإمكانيات المتعلقة بكيفية تكوين تطبيق فيما يتعلق بأنواع مختلفة من اللغات والهياكل البيانية والتوقيعات التي يمكن للمطورين استخدامها لتطبيق واحد دون التضحية بالأداء.


استنتاج

هناك مسارات متعددة لتحقيق أداء طبقة التنفيذ الأمثل.

ليس هناك أي تحسين فردي لوصول الحالة أو التوازي يبرز كنقطة مميزة تقنيًا بين طبقات التنفيذ عند محاولة التقاط التطبيقات اللامركزية. كما مررنا به، يمكن تطبيق فوائد التوازي القائم على الموارد على نموذج UTXO الخاص بـ Fuel بنفس القدر الذي يمكن للجميع استخدام Amazon'sحلول مفيدة لتحسين التوسع الأفقي من خلال التجزئةوتحسين أداء طبقة التنفيذ.

بينما تعد أداء طبقة التنفيذ عاملاً حاسمًا لجذب بناة التطبيقات اللامركزية، يجب على ال L1s و L2s الجديدة التي تتمحور حول تحسين التنفيذ منافسة على متغيرات أخرى، بما في ذلك الأمان والتوافق الشامل والتوافق مع الأدوات الحالية. لهذا السبب، ستكون انتشار طبقات التوافق الجديدة - من Nebra إلى Statenet إلى AggLayer الخاص بـ Polygon - حاسمة للمطورين الذين يشترون مساحة الكتل المصممة، حيث يمكنهم بناء أو شراء مساحة كتل متخصصة دون التضحية بالقابلية للتركيب المتزامن والسيولة المشتركة لل L1s العامة والمتعددة الأغراض.

تعتمد تحسينات إدارة الحالة وكفاءة الحوسبة بشكل مترابط.

عبر المجتمعات التي تقوم بتصميم طبقات تنفيذ جديدة، أصبح توازي الوصول إلى الحالة هو ميم محدد للتحسينات في الأداء التي يعدون بتقديمها. وبينما يكون هذا لسبب وجيه، حيث يمكن أن يؤدي إلىتحسين بنسبة 5 مرات في تنفيذ EVM, الأدلة من تجارب Monad المبكرة في التوازي تظهر أن دورها مبالغ فيه إذا لم تتم تطوير تحسينات أخرى، مثل الإدخال/الإخراج اللازم.

بناءً على ذلك، يمكننا الاستنتاج أن الكفاءة الحسابية غالبًا ما تتحقق فقط عندما نحسن كيفية الوصول إلى الحالة وتخزينها. يقلل إدارة الحالة الفعالة من الوقت والموارد اللازمة للوصول إلى البيانات وتلاعبها، مما يسرع من عملية المعالجة ويقلل من الحمل الحسابي.

وفيما يتعلق بذلك، قد يكون الحاكمون يتخذون خيارات تعتمد على المسارات تعيق قدرتهم على المنافسة مع تصاميم سلسلة الكتل الجديدة التي تعيد تصميم كيفية إدارة وتحديث الحالة، نظرًا للكبح الذي ينطوي عليه الشوكة الصعبة. ونتيجة لذلك، قد تكون الطبقات التنفيذية المتخصصة والمعتمدة على الوحدات وال L1s البديلة قادرة على خلق قدرة دفاعية حول خيارات التصميم لتخزين الحالة بكفاءة أكبر والبروتوكولات للقراءة منها والكتابة إليها. تقدم هذه القرارات التصميمية ميزة تنافسية، حيث قد يواجه الحاكمون عائقًا في تحديث هياكل قواعدهم البياناتية دون شوكة صعبة.

في نهاية اليوم، تؤثر قيم مساحة الكتل على مساحة التصميم لطبقات التنفيذ.

في فهم كيف يمكننا تحسين طبقات التنفيذ، يمكننا الآن توضيح أن فئات البصريات تختلف وفقًا لخياري تصميم حرجيين — من يقوم بتنفيذ المعاملات، وكم عدد العقد التي تحتاج إلى المشاركة؟ الأساليب المتاحة للمطورين لحل عقبات التنفيذ تختلف بشكل كبير اعتمادًا على إجابات الفريق الأولية على هذه الأسئلة.

من جهة، المنصات الأحادية الكبيرة مثل سولانا وموناد لا تقبل فصل دور المحقق في العقدة إلى عقد قوية وضعيفة مختلفة لتسريع الأداء. "قبول" زيادة حالة في المدى القصير ليس حلاً قابلاً للتنفيذ، لذلك يعتمدون على التحسينات في طبقة قاعدة البيانات وغيرها من مكونات محرك إنتاج الكتل، مثل الاتفاق، لتعويض العدد الأكبر من العقد التنفيذية التي تعتبر جزءًا حرجًا وقيمة أساسية للشبكة. لأن النماذج الأمنية لهذه المنصات تعتمد على اتفاق مجموعة أكثر توزيعًا من المحققين ذوي متطلبات أجهزة أضعف، يجب كتابة بياناتهم إلى قاعدة بيانات تعيش على قرص، والذي يكون بالضرورة أرخص لبلوكشين لا إذنية وفائق اللامركزية.

من ناحية أخرى، تسعى مشاريع مثل إيثيريوم وطبقاتها L2 إلى خريطة طريق تميل نحو اللامركزية عبر عقدة تنفيذية مركزية من خلال بناة كتل مركزيين مسؤولين أمام عقدة مقترحي التحقق الأضعف من خلال دلائل الاحتيال أو الصحة.

نفترض أن "المنفذين" المركزيين للمعاملات والانتقالات الحالية يُعتبرون مقبولين في سعيهم نحو مستقبل مركزي. في هذه الحالة، تنص قوانين الفيزياء على أن الأنظمة التي يمكنها 1) إضافة كتل إلى سلسلة دون الحاجة إلى تنفيذ متعدد للمعاملات، 2) زيادة متطلبات المحقق لتعظيم الحساب في الذاكرة (وتجاهل مشكلة انتفاخ الحالة)، و 3) تقليل التأخير وعقبات التوافق يفوز بوضوح مقارنة بالأنظمة التي تعتمد على التمركز الواسع والاتفاق بين العقد.

بحثاً عن تحقيق التوازن بين قابلية التوسع وتقليل الثقة، يبدو أن الهدف من طبقات التنفيذ لا ينبغي أن يكون تحسين اللامركزية بشكل أعمى، ولا ينبغي دائمًا أن يكون التنفيذ مفتوحًا تمامًا.

أثناء تطويرنا وتنفيذ مجموعة أوسع من الأدوات التشفيرية، مثل الصحة وإثبات الاحتيال، نقوم بتقليل عدد العقد اللازمة بشكل فعال لمقاومة الرقابة وضمان الأمان والاستمرارية. ومع ذلك، تنطوي هذه النهج على تنازلات، قد تؤثر بشكل محتمل على مقاومة الرقابة ونزاهة الترتيب وضمانات الاستمرارية نظرًا لاحتمال تمركز المنفذين.

كما لاحظ Sreeram، فإن "اللامركزية القابلة للتطبيق الدنيا" لا تعني أن "التحقق يجب أن يكون بدون إذن" بل يجب أن "يكون محفزًا بشكل صحيح فقط". وهذا يعني أن النظام الذي يتم مراقبته جيدًا، حيث يواجه المحققون عواقب جسيمة عند ارتكابهم للسلوكيات الخاطئة، يمكن أن يحافظ على السلامة والحيوية دون الحاجة إلى لامركزية مفرطة (h/t Sreeram).

ويجري بالفعل اختبار نماذج الحوكمة هذه في التطبيقات العملية. على سبيل المثال ، تستكشف عمليات التجميع مثل Arbitrum الحوكمة أو الأنظمة القائمة على اللجان لفرض ترتيب المعاملات وقواعد اختيار القائد ، وهي تفكر في الآليات التي يستخدم فيها التسلسل بيانات onchain لدعم سياسات طلب المعاملات.

على الرغم من هذه التطورات ، لا توجد "حدود باريتو المثلى" النهائية لتحقيق التوازن بين اللامركزية والأداء.

الاعتبارات العقائدية والتقنية ما زالت تصب في صالح توزيع عقد التنفيذ للتحقق من الحالة. بينما يقلل تمركز العقد من العبء التوافقي ويمكن أن يعزز تحسين الأجهزة الأداء بشكل كبير، ومن غير الواضح ما إذا كانت هذه العمليات التحسينية ستجذب المطورين المركزين على إنشاء تطبيقات مقاومة للرقابة وإلى أي مدى تظل مقاومة الرقابة قيمة أساسية في الصناعة.

*يشير إلى شركة محفظة النموذج

تنصيح:

  1. يتم إعادة طبع هذه المقالة من [Gateمرآة )], إعادة توجيه العنوان الأصلي 'مساحة تصميم: مستقبل بيئات التنفيذ'، جميع حقوق النشر تنتمي إلى الكاتب الأصلي [ بنيامين فنك]. إذا كانت هناك اعتراضات على هذا الإعادة طبع، يرجى الاتصال بالبوابة تعلمالفريق، وسوف يتعاملون معها على الفور.

  2. إخلاء المسؤولية عن المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك التي يعبر عنها المؤلف ولا تشكل أي نصيحة استثمارية.

  3. تتم ترجمة المقال إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر، فإن نسخ أو توزيع أو سرقة المقالات المترجمة ممنوع.

مستقبل بيئات التنفيذ

متقدم5/13/2024, 10:22:30 AM
يعزو بنجامين فونك، باحث مؤسسة الاستثمار في العملات المشفرة Archetype، زحمة طبقة التنفيذ إلى الوصول الفعال إلى الحالة والحساب. وقد قيم الخيارات التصميمية التي اتخذتها بيئات التنفيذ المتكاملة والموديلات في تحقيق أداء أعلى وتوسيع نطاق التطبيقات على السلسلة.

تم إعادة توجيه العنوان الأصلي: مصمم Blockspace: مستقبل بيئات التنفيذ

في التسع سنوات منذ إطلاق إيثيريوم أول سلسلة كتلية لامركزية قابلة للبرمجة، واجهت العملات الرقمية عدة عقبات في سعيها لتوسيع تطبيقاتها اللامركزية لمليارات المستخدمين. ومن أجل تطوير حلول التوسيع لمعالجة هذا، دعمت الصناعة العملات الرقمية باستمرار وطورت أنواعًا جديدة تمامًا من سلاسل الكتل لحل مشكلة الأداء.

ومع ذلك، لم يتم تحديد وتحديد بشكل سيء "مشكلة الأداء". وقد حزمت النكات الاصطناعية مثل "المعاملات في الثانية" ما هي في الواقع مقارنات بين التفاح والبرتقال التي لا تتطلب عملًا حسابيًا مكافئًا. كما يلف النقص في التفاصيل في هذه القياسات قدرتنا على تقييم التأثيرات المستقلة لمكونات سلسلة الكتل على الأداء، مما يلهينا عن النهج المبدئي لتحديد مجموعات التحسينات التي يمكننا إجراؤها لحل المشاكل المترابطة بشكل كبير.

على الرغم من هذه الضبابية، لقد شهدنا تحسنات موثوقة ومستدامة في قدرة توسيع سلسلة الكتل على مدى السنوات القليلة الماضية. بينما تتقدم إيثريوم من خلال خريطة طريقها المتمحورة حول rollup، فإن موجة جديدة من rollups و coprocessors تظهرتوافر البيانات(DA) الطبقات، والطبقات L1 التنافسية تظهر - كل منها يتميز بخيارات تصميم فريدة لتوفير بيئات أكثر أداءً للمطورين لبناء تطبيقات dapps قابلة للتطوير وصديقة للمستخدمين.

اليوم، أدى إدخال EIP4844 وطبقات DA البديلة إلى تخفيف Engأ Eng EngEng. على الرغم من هذه الخطوة الحاسمة، تشير الأدلة إلى أن هناك Eng EngEngEngEng EngEngEngEngEngEngEng. في الشهر الماضي،قاعدةجمع1.57 مليون دولار في رسوم المعاملات في يوم واحدبينما يدفع فقط 5 ألف دولار في تكاليف توفر البيانات إلى إيثريوم. وهذا يشير إلى أن العمل الحسابي المطلوب للتحقق ومعالجة تحديثات الحالة ما زال يشكل عقبة حرجة وفرصة للتحسين.

سيقوم هذا القطع بتقييم الخيارات التصميمية التي اتخذتها بيئات التنفيذ المتكاملة والمعمارية في طريقها لحل مشكلة الأداء الأعلى وتوسيع نطاق التطبيقات التي يمكن أن تعيش على السلسلة.

تحديات اليوم

يمكن مقارنة أداء طبقة التنفيذ وفقًا للعمل الحسابي الذي تحققه العقد المنفذة مقارنة بوقت كتل سلاسلهم، أو "الغاز المحسوب في الثانية".

مع ذلك في الاعتبار، يمكننا تضييق أزمات طبقة التنفيذ إلى عاملين مترابطين: الوصول غير الفعال إلى الحالة والحساب غير الفعال.

يشير الوصول الغير كفء إلى التكلفة الإضافية لاسترجاع وتحديث حالة سلسلة الكتل، والتي يمكن أن تبطئ معالجة المعاملات. من ناحية أخرى، فإن الحساب غير الكفء هو وظيفة للتكلفة الإضافية التي تتكبدها الخوارزميات أثناء تنفيذ العمليات والانتقالات الحالية، والتي يمكن أن تشمل كل شيء بدءًا من عمليات النقل البسيطة إلى العقود الذكية المعقدة والتحقق من التوقيعات.

هذه العقبات متبادلة التعزيز - يمكن أن تؤدي التأخيرات في الوصول إلى الحالة إلى تمديد الوقت اللازم للحساب، في حين يمكن أن تضغط الممارسات الحسابية غير الفعالة على إدارة الحالة. علاوة على ذلك، تتطلب التحسينات المقترحة لمعالجة هذه المشاكل في كثير من الأحيان تحسينات نظامية مثل التجزئة أو اعتماد الهندسة المعمارية الخالية من الحالة، التي تعزز وصول الحالة وكفاءة الحساب لتحسين أداء التنفيذ.

عائق رقم 1: الوصول غير الكفء إلى الحالة

تكلفة وسرعة الوصول المطلوبة للوصول إلى حالة سلسلة الكتل حاسمة لبيئات التنفيذ الفعالة ويمكن تقديرها إلى مشكلة تضخم الحالة.

في تقنية سلسلة الكتل، يتم إدارة وتحديث حالة العالم من خلال هياكل بيانات محددة تسمى الأشجارالأشجار تعتبر جزءًا أساسيًا من تقنية البلوكشين، حيث توفر وسيلة آمنة وفعالة لمنح الأطراف الخارجية لعقد التنفيذ ضمانات حول الحالة الصحيحة للبلوكشين. يُنشئ كل تحديث داخل شجرة بيانات جذر هاش جديد، الذي يمكن للعملاء الخفيفين الإشارة إليه للتحقق من المعاملات وأرصدة الحسابات دون الحاجة للحفاظ على سلسلة الكتل بأكملها.

إيثيريوم يعتمد على الأخص بنية بيانات تعرف بشجرة ميركل باتريشيا (MPT)، التي تتكون من@chiqing/شجرة ميركل باتريشيا الموضحة-ae3ac6a7e123">four sub-tries.

مع إضافة إيثريوم لمزيد من العقود الذكية والرموز إلى حالته، يصبح شجرته الحالية أكبر وأكثر تعقيدًا. مع نمو الحالة، يتطلب مزيدًا من مساحة التخزين، ومزيدًا من الموارد الحسابية لمعالجتها، ومزيدًا من النطاق الترددي لنقلها. في الوقت نفسه، تظل قيود الأجهزة للعقد تقريبًا كما هي.

يؤثر نمو الحالة هذا مباشرة على أداء Ethereum لأن الحالة مخزنة في القرص، وتترتب على عمليات القرص تكاليف عالية. في حين أن الوصول إلى البيانات من سجل وحدة المعالجة المركزية يمكن أن يستغرق 0.1 نانوثانية، يمكن أن يستغرق بين 10 و 100 ميكروثانية(100x–1000x أبطأ)للوصول إلى البيانات من قرص، ترجم تقريبًا إلى 200000 تعليمة معالج مركزي يمكن أن تكون قد تم تنفيذها في تلك الفترة. وهذا يعادل تقديرًا محافظًا لـ 36 تحويل ERC-20 الذي يمكن أن يكون!

ومن تفاقم هذه المشكلة، أن لدى سلاسل الكتل أنماط وصول غير كفئة للقراءة والكتابة إلى الحالة. على سبيل المثال، فإن الهيكل غير التسلسلي لشجرة ميركل باتريشيا يؤدي بشكل طبيعي إلى عمليات الإدخال/الإخراج من وإلى مواقع متنوعة غير قابلة للتنبؤ على القرص. الطبيعة العشوائية لمدخلات المعاملات والتغييرات الحالية التي تُثيرها تؤدي إلى نمط وصول للبيانات مبعثر يبطئ بشكل كبير عملية التحقق والتحديث من الحالة ويستخدم فقط جزءًا منسعة جهاز الأجهزة الأساسية.

في النهاية، البنيات الأساسية لإدارة الدولة لسلاسل الكتل بعيدة كل البعد عن تحقيق إمكانيتها المطلقة، ويمكن إجراء تحسينات كثيرة لتحسين الكفاءة الحسابية.

نقطة ضعف #2: الحساب غير الكفء

تواجه طبقات التنفيذ أيضًا زجاجة عنق الحساب غير الفعال، والتي تظهر بطرق مختلفة.

أولاً، العديد من العمليات تقوم بتنفيذ التحويلات تسلسليًا، مستغلة بشكل غير كامل معالجات النوى المتعددة الحديثة القادرة على معالجة عمليات متعددة في نفس الوقت. يؤدي هذا التنفيذ التسلسلي إلى فترات توقف حتمية لوحدة المعالجة المركزية بين التحويلات، مهدرًا الموارد الحسابية القيمة.

بالإضافة إلى ذلك، ينطوي استخدام الآلات الافتراضية على ترجمة عمليات العقد الذكية عالية المستوى إلى بايت كود - وهو رمز منخفض المستوى غير متعلق بالمنصة - الذي يتم تنفيذه تعليمة تلو التعليمة. يقدم هذا العملية الترجمة والتنفيذ سوء التشغيل الكبير، خصوصا لتطبيقات تتضمن مهام محددة للتطبيق معقدة ومتكررة بشكل متكرر.

هذه الفجوات تؤدي إلى استخدام غير فعال للموارد الحسابية وتعيق أداء طبقات التنفيذ.


الحلول: وصول غير كفء للحالة

هناك عدة طرق مميزة يتم بها تحسين معدل الحصول على الحالة وتحديثها من عتاد العقدة التنفيذية، بما في ذلك تبسيط الهياكل البيانات المعقدة والعثور على طرق لتقليل عمليات إدخال/إخراج القرص المكلفة التي تؤدي إلى انتفاخ الحالة.

عدم الجنسية والحوسبة في الذاكرة

بعض طبقات التنفيذ تتعامل مع زيادة الحالة عن طريق قبولها ببساطة في المدى القصير. إنها تقوم بنقل تخزين بيانات الحالة من أنظمة التخزين على القرص البطيء إلى الذاكرة العشوائية ذات الوصول العشوائي السريع. يقلل الوصول إلى معلومات الحالة في الذاكرة العشوائية بشكل كبير من الرسوم الزائدة المرتبطة بعمليات القرص، التي تكون أبطأ وأكثر استهلاكًا للموارد.

ومع ذلك، تتحدى هذه الطريقة المبدأ الأساسي للتفكيك. يتطلب تخزين كميات متزايدة من البيانات الحالية في ذاكرة الوصول العشوائي معدات أكثر تقدما وتكلفة أعلى، مما قد يقيد قدرة الأفراد على المشاركة كمشغلي عقد البيانات. وبالتالي، مع تزايد متطلبات المعدات، يمكن لعدد أقل من الكيانات تحمل تشغيل هذه العقد.

لتحقيق توازن بين جاذبية الحوسبة في الذاكرة مع تقليل الثقة، فإن كل من L1s (مثل إيثريوم) و L2s يسعيان إلى خريطة طريق للقدرة على التوسع تعتمد على فك حزم دور المحقق إلى عقد تنفيذ مركزي منفصل مع العديد من أجهزة التحقق. في هذا النموذج، يتحمل منتجو الكتل عالية الأداء متطلبات الأجهزة للحوسبة في الذاكرة مسؤولية توليد الكتل، ويتم الاعتماد على البراهين الكربتوغرافية (براهين الغش والصحة) من قبل أجهزة التحقق لجعل منتجي الكتل مسؤولين.

ونتيجة لذلك، يجب أن تسمح هذه الأنظمة لمنتجي الكتل بتحقيق أقصى سرعة لديهم لأنه من الممكن توقعهم أن يحتسبوا في الذاكرة، مما يقضي على عمليات إدخال/إخراج القرص تمامًا أثناء التنفيذ. ونظرًا لأن تأخير الذاكرة العشوائية عادةً ما يكون أقل من 100 نانوثانية، يتم تخفيض تأخير الوصول إلى الحالة بمقدار يصل إلى 1000 مرة مقارنة بتنفيذ القرص.

بالتوازي، يتم استخدام إثباتات الاحتيال والصحة بدلاً من التوافق اللامركزي لتوسيع خصائص تقليص الثقة في النظام جنبًا إلى جنب مع قدرته الاستيعابية. نتيجة لذلك، يتم موازنة العقد القوية للعقد القائمة على الكتل بواسطة العقد المدققة الذي يمكن تشغيلها على أجهزة أقل تكلفة بكثير. تقوم هذه العقد بأداء الوظيفة الحرجة للتحقق بشكل مستقل من إثباتات عمليات الانتقال الحالية (أو عمليات الانتقال غير الصالحة) للحفاظ على رؤية دقيقة للحالة دون عبء تخزين حالة سلسلة الكتل بأكملها.

لتيسير هذه العملية بطريقة تقلل من الثقة، يجب على طبقات التنفيذ تنفيذ درجة منعدم الجنسية، وأشهرها مفهوم "عدم الدولة الضعيفة". يتم تحقيق عدم الدولة الضعيفة من خلال الإلزام على منتجي الكتل بتقديم شهادة تشفيرية تعرف بـشاهدإلى عقدة التحقق. يغلف هذا الشاهد كل التغييرات المقترحة في الحالة بواسطة الكتلة الجديدة، مما يمكن المحققين من التحقق من هذه التغييرات دون بيانات تاريخية إضافية.

على الرغم من أنه يمكن تطبيق هذا المفهوم باستخدام هياكل شجرية مختلفة، إلا أن شجرات Verkle يتم تفضيلها غالبًا على شجرات Merkle لكفاءتها. تتطلب شجرات Merkle تضمين جميع تجزئة العقد الأخوية على طول المسار من نقطة البيانات (الورقة) إلى جذر الشجرة لإثبات سلامة البيانات. هذا المتطلب يعني أن حجم الشاهد (دليل سلامة البيانات) ينمو مع ارتفاع الشجرة، حيث تستلزم كل مستوى تجزئة إضافية. وبناءً على ذلك، يصبح التحقق من سلامة البيانات في شجرات Merkle مكلفًا من الناحية الحسابية والمالية، خاصة بالنسبة للمجموعات البيانات الكبيرة. على النقيض من ذلك، تبسط شجرات Verkle هذه العملية، مما يقلل من التكاليف المرتبطة بالحساب والتخزين في إنشاء والتحقق من الكتل الجديدة.

تقديم شجرة Verkle من Ethereum's "Verkle Tree"

تعزز أشجار Verkle هيكل أشجار Merkle التقليدية من خلال تبسيط الاتصالات بين الأوراق والجذر والتخلص من الحاجة إلى تضمين العقد الشقيقة في عملية التحقق. في شجرة Verkle، ينطوي التحقق من دليل فقط على القيمة في العقدة الورقية، والتزام بالعقدة الجذرية، والتزام بياني واحد يعتمد على التزامات متعددة الحدود، والتي تحل محل التزامات متعددة القائمة على الهاشات الموجودة في أشجار Merkle. يسمح هذا التحول لأشجار Verkle بالحفاظ على شهادة ثابتة الحجم، والتي لا تزيد مع ارتفاع الشجرة أو عدد الأوراق التي تم التحقق منها، مما يحسن بشكل كبير كفاءة التخزين والحساب أثناء التحقق من البيانات.

خلال السنوات القادمة، سنرى تنفيذات للحالة اللاحالة تحدث على مستوى L1 و L2 بتكوينات متنوعة. وفقًا لخريطة طريق Ethereum الأخيرة، يمكن للمحققين الاعتماد على بناة الكتل لتقديم أدلة Verkle بشأن حالة بعض الكتل والتحقق من هذه الأدلة الخفيفة بدلاً من الاعتماد على حالة Ethereum مباشرة.

على مستوى L2، فرق مثلMegaETHيطبقون بنشاط مفهوم عدم الحالة في تصميم الدفعات التفاؤلية. في تصميمهم، يولد عقد المتسلسل شاهدًا لكل كتلة يحتوي على قيم الحالة اللازمة والتجزئات الوسيطة أثناء إصدار تجزئة الحالة التي تمثل التغييرات في الحالة. يمكن لعقدة التحقق إعادة تنفيذ أي كتلة من خلال استرداد الشاهد من طبقة DA أو شبكة نظير إلى نظير دون تخزين الحالة بأكملها. في الوقت نفسه، تحدث العقد الكامل تحديثًا لحالته عن طريق تطبيق التجزئات الحالية المنتشرة عبر الشبكة، مما يتيح لها البقاء متزامنة دون إعادة تنفيذ المعاملات أو تخزين تاريخ الحالة بأكمله.

ومع ذلك، فمن الجدير بالإشارة أيضًا إلى أن فوائد عدم وجود حالة والقدرة الناتجة عنها على الحساب في الذاكرة ليست بالحل السحري لأداء طبقة التنفيذ.

معدل TPS في الوقت الحقيقي من "فهم أداء طبقة تنفيذ إيثريوم" لـ MegaETH

كمؤسس لشركة MegaETH، يحدد Yilong Li فيما يليعرض البحثفي تنفيذ Ethereum، هناك عدم كفاءة أخرى في هياكل البيانات وأنماط الوصول onchain التي لا تزال محسنة.

تحسين قواعد البيانات

يعمل الفرق المعنية بطبقات التنفيذ على إيجاد طرق لتحسين هيكل قواعد البيانات أنفسها للقضاء على بعض العقبات التي يواجهها Ethereum وغيرها من سلاسل الكتل المتوافقة مع EVM في التعامل مع الوصول الغير كفء إلى الحالة، والذي يؤثر سلباً على كفاءة الحوسبة.

في الواقع، أدركت قيود تصميمات قواعد البيانات الحالية الموجودة في EVMالوحدة* قرار بالذهاب إلى ما هو أبعد من تحسين الكفاءة الحسابية بحتة لتحقيق التوازي. وجدت Monad أنه حتى بعد تنفيذ التنفيذ المتوازي، لم يروا سوى تسريع طفيف في الأداء لأن طلبات القراءة والكتابة متعددة الخيوط إلى قاعدة البيانات تحجب بعضها البعض. نتيجة لذلك، نفذت Monad قاعدة بيانات متوافقة مع الإدخال/الإخراج الغير متزامن (AIO)، أو الوصول المتوازي، كجزء حاسم من الحل.

الإدخال/الإخراج اللامتزامن

العمليات الإدخال/الإخراج - مثل قراءة من أو كتابة إلى أجهزة التخزين - غالبا ما تخلق Eng، خصوصا مع أقراص القرص الصلب الميكانيكية (HDDs). تتطلب هذه الأقراص حركة المادية لرأس القراءة/الكتابة للوصول إلى البيانات، مما يمكن أن يبطئ بشكل كبير من معالجة البيانات.

تعالج AIO هذا التحدي عن طريق السماح للبرامج بأداء عمليات الإدخال/الإخراج بشكل متزامن مع العمليات الأخرى. بشكل أساسي، يمكن لبرنامج تشغيل عملية إدخال/إخراج والانتقال دون الانتظار حتى يتم الانتهاء منها. يفعل ذلك عن طريق تسجيل وظيفة الرد أو وعد بأن يقوم نظام التشغيل أو مكتبة الإدخال/الإخراج بتحقيقها بمجرد الانتهاء من عملية الإدخال/الإخراج. يسمح هذا النهج الغير متزامن للبرنامج الرئيسي بمواصلة تنفيذ مهام أخرى، مما يحسن الكفاءة العامة من خلال عدم تعطل مهام الإدخال/الإخراج للانتهاء.

يمكن تنفيذ الإدخال/الإخراج اللامتزامن باستخدام كل من أقراص الهارد ديسك التقليدية وأقراص الحالة الصلبة (SSDs)، على الرغم من أن الفوائد أكثر وضوحًا مع أقراص الحالة الصلبة. يمكن لأقراص الهارد ديسك أداء الإدخال/الإخراج اللامتزامن، ولكن طبيعتها الميكانيكية تعني أنها أبطأ بشكل طبيعي من SSDs التي تخزن البيانات على ذاكرة فلاش ولا تحتوي على أجزاء متحركة، مما يؤدي إلى أوقات وصول أسرع.

على سبيل المثال، يستخدم Monad خلفية حالة مخصصة محسنة لتخزين SSD، تدعم مستويات عالية من معالجة البيانات المتوازية وتقلل من تأخير الإدخال/الإخراج. هذا الإعداد أكثر كفاءة من الأنظمة التي تعتمد فقط على تخزين القرص التقليدي أو تلك التي تستخدم قواعد بيانات الذاكرة، والتي قد تواجه لا تزال تأخيرًا من كتابات البيانات المتكررة إلى وقراءات من وسائط تخزين أبطأ.

بالمثل، يستخدم Reth طريقة تفصل عمليات قاعدة البيانات عن محرك تنفيذ EVM الأساسي. يتيح هذا الإعداد لبايت كود EVM تنفيذه بتسلسل على خيط واحد للحفاظ على التناسق بينما تتم إيقاف مهام إدخال/إخراج قاعدة البيانات إلى عمليات متوازية. يستخدم Reth نموذج الممثل - نمط هندسة البرمجيات - لإدارة هذه العمليات المتوازية بفعالية، مضمناً أن عمليات إدخال/إخراج لا تقاطع متفسر EVM.

تردد تجميع الحالة Merklization

واحدة من البنود المستهدفة للتحسين هي تردد تقنين الحالة. النموذج الحالي لإثيريوم في تقنين الحالة بعد كل كتلة يُعرض له عبء كبير، حيث يتطلب كتابات متكررة وقراءات متكررة من القرص وترافرسالات مستمرة في الجزع يعمل الشجرة التقنية عادة عن طريق تجميع التجزئة الوسيطة إلى مجموعات من 16 (تسمى عقدة) وتخزينها في قاعدة بيانات مخزن مفتاح القيمة حيث يكون المفتاح تجزئة العقدة والقيمة العقدة نفسها.

عبور هذه الشجرة للعثور على البيانات وتحديثها يتطلب وصولًا عشوائيًا واحدًا لكل طبقة من الشجرة التي يجب عبورها، وستتطلب عبور شجرة Merkle ساذجة تقريبًاثماني استعلامات قاعدة بيانات متتالية لكل إدخال.

نهج سولانا في تحديث التزام الحالة فقط في نهاية كل حقبة يسمح بتوزيع تكاليف الكتابة على العديد من المعاملات داخل تلك الفترة. إذا تم تعديل إدخال الحالة مرات عديدة داخل نفس الحقبة، فإن كل كتابة لا تتطلب تحديثًا فوريًا لجذر ميركل. يقلل هذا من العبء الحسابي الشامل المرتبط بتحديثات الحالة خلال الحقبة. وبالتالي، يبقى التكلفة المرتبطة بالقراءة من الحالة ثابتة، أو O(1)، لأنه يمكن قراءة الحالة مباشرة دون الحاجة إلى عبور مسار ميركل في كل مرة.

تقليل تردد عملية تقسيم الميركل في إيثيريوم يمكن أن يقلل من التكلفة الإضافية الناتجة عن قراءة وكتابة الحالة، مما يعزز الأداء. ومع ذلك، سيحتاج العملاء الخفيفون إلى إعادة تشغيل تغييرات الكتل لتتبع الحالة بين الحقب أو تقديم معاملات على السلسلة للتحقق من الحالة، وهذا التغيير غير متوافق حاليًا مع إيثيريوم.

هياكل بيانات فعالة ومتخصصة

وعلاوة على ذلك، تعمل هياكل الأشجار المتدرجة داخل عملاء إيثريوم الحاليين عمومًا على تسبب أنماط وصول غير فعّالة إلى الحالة، مما يسهم بشكل أكبر في تضخم الحالة. بينما تكون حالة إيثريوم منظمة على أنها شجرة ميركل قطرية، فإنها يتم تخزينها ثم في قواعد بيانات عملاء إيثريوم مثل مستوى قاعدة البيانات,PebbleDB(التي تستخدمها go-ethereum)، أو MDBX (المستخدمة بواسطة Erigon) التي تخزن البيانات في أشجار ميركل مثلشجرة Bأوشجرة LSM.

في هذا الإعداد، يتم تأصيل هيكل بيانات في هيكل بيانات آخر من نوع منفصل، مما يخلق 'تضخيم القراءة' من خلال التنقل في هياكل الشجرة الداخلية في أجهزة العملاء التي تعمل تحت نظام آخر قائم على شجرة Merkle. يمكن فهم تضخيم القراءة على أنه نتيجة الخطوات المتعددة للوصول إلى المعلومات أو تحديثها الموجودة ضمن حالة ما، مما يتطلب التنقل في الشجرة الخارجية للعثور على نقطة الدخول إلى الـ MPT قبل تنفيذ العملية المطلوبة. ونتيجة لذلك، يتم ضرب عدد عمليات الوصول إلى القرص للقراءة العشوائية بعامل log(n).

لحل هذه المشكلة، تستخدم Monad بشكل أصلي هيكل بيانات Patricia trie على القرص وفي الذاكرة. من الناحية التقنية، يكون Patricia tries في كثير من الأحيان أفضل من هياكل الشجرة الأخرى بسبب توازنها الفريد بين كفاءة الفضاء، والمطابقة الفعالة للبادئة، والعبور الحد الأدنى للعقد. تصميم الشجرة ينهار العقد ذات الأطفال الواحد ويبسط عمليات البحث، الإدخال، والحذف، مما يقلل من عدد عمليات الإدخال/الإخراج المطلوبة. وعلاوة على ذلك، فإن مهارة Patricia trie في التعامل مع المطابقة للبادئة تعزز الأداء في التطبيقات التي تحتاج إلى عمليات بحث سريعة على جزء من المفتاح.

أحد العقبات الأخرى الخاصة بالهياكل المستندة إلى الأشجار هو أن الوصول إلى البيانات أو تحديثها يتطلب عبور عدة طبقات، مما يؤدي إلى العديد من عمليات الوصول التسلسلية للقرص.مختبرات سوفرينتتناول هذه الكفاءة من خلال دعم تكوين شجرة Merkle ثنائية. يقلل هذا التحول الحاسم إلى هيكل ثنائي من عدد مسارات الإمكانية أثناء عملية عبور الشجرة، مما يقلل مباشرة من العمليات الحسابية للتحديثات والإدراجات والبراهين التشفيرية.

تكوين شجرة ميركل الثنائية من "Nearly Optimal State Merklization" لشركة Sovereign Labs

مثال إضافي في هذا الفئة هو فريق Gate تكوين Reth إلىجلب العقد الوسيطة المسبقة من القرص أثناء التنفيذبالإخطار بخدمة جذر الحالة حول فتحات التخزين والحسابات التي تم لمسها.

انتهاء الحالة

انتهاء الحالة هو آلية لإدارة وتقليل حجم حالة سلسلة الكتل عن طريق إزالة البيانات التي لم يتم الوصول إليها لفترة زمنية محددة. بينما يتم وضع انتهاء ضمن فئة "عدم الحالة" في كثير من الأحيان، فمن الأمر الحرج التمييز بين هذه المفاهيم في سياق التنفيذ.

العديمة للحالة تحسن التنفيذ من خلال زيادة قدرة العقد التنفيذي على الحساب في الذاكرة، ولكن التحسينات في التنفيذ تنبع من متطلبات الأجهزة الأكبر عبر عدد أقل من العقد التنفيذية التي تنفذ المعاملات. على النقيض، يمكن تطبيق انتهاء الحالة على سلاسل الكتل مع عدد قليل وكبير من العقد التنفيذية.

هناك طريقتان يتم مناقشتهما بشكل شائع لتنفيذ انتهاء الحالة:

  • انتهاء الصلاحية عن طريق الإيجار: تشمل هذه الطريقة فرض رسوم صيانة، أو "إيجار"، للحفاظ على الحسابات نشطة داخل قاعدة البيانات الحالية. إذا لم يتم دفع الإيجار، يتم أرشفة الحسابات حتى يتم دفع رسوم لاستعادتها.
  • انتهاء الصلاحية حسب الوقت: هنا، يُعتبر الحساب غير نشط إذا لم يتم الوصول إليه - مما يعني عدم وجود معاملات أو تفاعلات - لمدة محددة.

كلا الطريقتين تهدفان إلى الحفاظ على البيانات المستخدمة بشكل نشط فقط في الحالة القريبة والمتاحة بينما تنقل البيانات الأقدم والتي يتم الوصول إليها بشكل أقل إلى حالة مؤرشفة لا تعبئ النظام الرئيسي.

من خلال الحفاظ على حالة أصغر وأكثر قابلية للإدارة، يقلل انتهاء الحالة من "انتفاخ الحالة" الذي يمكن أن يعيق أداء سلسلة الكتل بشكل كبير. يسمح حجم الحالة الأصغر للعقد بالتنقل وتحديث الحالة بسرعة، مما يترجم إلى تنفيذ أسرع لأن العقد يقضي وقتاً أقل في المسح وأكثر وقت في المعالجة.

تقسيم التنفيذ

تعمل التجزئة على تحسين استخدام الموارد والأداء من خلال توزيع المهام والبيانات عبر عدد محدود من العقد المتخصصة (لا يقوم كل عقد بتنفيذ حالة عالمية).

في بنية سلسلة كتل مشتتة، يتم تقسيم الحالة العالمية إلى أقسام متميزة تسمى قطع. كل قطعة تحتفظ بجزء من الحالة ومسؤولة عن معالجة جزء من معاملات الشبكة. تُعين المعاملات إلى قطع محددة بناءً على وظيفة تقسيم محددة، تأخذ في الاعتبار عوامل مختلفة مثل عنوان المُرسِل، عنوان المستلم، والتجزئة من بيانات المعاملة. يقلل هذا من الحاجة إلى التواصل بين القطع ويمكن تنفيذ المعاملات بكفاءة أكبر.

مخطط التجزئة من مقال فيتاليك "الحدود لقابلية توسيع سلسلة الكتل"

يصبح هذا واضحًا عند استكشافبروتوكول NEARتصميم تجزئة،ليلية، الذي يحقق عدم الانتماء لتوزيع الشبكة دون المساس بتقليل الثقة.

في Nightshade، يتم تنظيم البلوكشين كسلسلة منطقية واحدة، حيث يتكون كل بلوك من عدة "شرائح" وتُخصص شريحة واحدة لكل شارد. تحتوي هذه الشرائح على المعاملات والانتقالات الحالية الخاصة بكل شارد. يسمح تضمين الشرائح من جميع الشاردات داخل بلوك واحد بالحصول على رؤية موحدة لحالة البلوكشين بأكمله ويبسط عملية التواصل عبر الشاردات.

بالمثل لفصل بناء صحيح (PBS) على إيثيريوم، يحدد Nightshade بوضوح أدوار العقد الحالية وغير الحالية. على NEAR، يتم تعيين المحققين الحاليين إلى قصاصات معينة وهم مسؤولون عن جمع المعاملات، تنفيذها، وإنتاج شظايا محددة للقصاصة. يحتفظون بالحالة الكاملة للقصاصة التي تم تعيينها لهم ويولدون شهود حالة ليستخدمها المحققون خلال عملية التحقق.

وفي الوقت نفسه، يتم تعيين محققين غير مترابطين عشوائيًا لتحقق أجزاء محددة على أساس كل كتلة. لا يحتاجون إلى الحفاظ على الحالة الكاملة المقسمة ويعتمدون على شهود الحالة التي يوفرها منتجو الكتل من الأجزاء الأخرى للتحقق من تحولات الحالة والمعاملات داخل الشظية. يساعد التعيين العشوائي للمحققين للشظيات في ضمان أمان الشبكة وسلامتها، حيث يجعل من الصعب على الجهات الخبيثة التواطؤ والسيطرة على شظية معينة.

نظرًا لأن كل عقدة في الشبكة تحتاج فقط إلى التعامل مع البيانات الخاصة بشريحتها المعنية بدلًا من بيانات الشبكة بأكملها، يتم تقليل العبء التخزيني والحسابي على العقد الفردية.


الحلول: حساب غير فعال

توازي التنفيذ

حان وقت التعامل مع الفيل في الغرفة: التوازي. توازي تنفيذ المعاملات يمكنه معالجة عدة معاملات عن طريق استخدام موارد الحوسبة المتعددة بشكل متزامن. يسمح هذا بزيادة الإنتاجية حيث يتم توسيع موارد الأجهزة خلال فترات الطلب العالي.

ومع ذلك، من المهم أن نأخذ في الاعتبار أن عدة مكونات تنفيذ يمكن توازيها، والعديد منها يتم تنفيذها بواسطة معالجات مساعدة مثل Lagrange* وعملاء سلسلة الكتل البديلة مثل راقص النارلتحسين أداء البلوكشين بشكل كبير. على وجه الخصوص، يمكن أن يشمل التوازي:

  • توازي الوصول إلى الحالة
  • توازي العمليات المحددة
  • توازي الاتفاق والتنفيذ

توازي الوصول إلى الحالة

توازي الوصول إلى الحالةيجلب فائدتين حرجيتين:

  • توزيع معالجة المعاملات عبر وحدات المعالجة المركزية المتعددة المتوازية يسمح للمعاملات المتعددة بالتعامل بشكل متزامن بدلاً من إجبارها على الانتظار من أجل مورد واحد فقط.
  • عندما تنتظر المعاملة بيانات من التخزين - والتي يمكن أن تسبب تأخيرا كبيرا - لا يبقى النظام خاملا. بدلاً من ذلك، يمكنه التبديل إلى معاملة أخرى جاهزة للتنفيذ. هذا ممكن لأن النوى المتعددة يمكن أن تتولى مهام مختلفة بشكل مستقل وفي نفس الوقت.

التحدى الأساسى فى توازى تنفيذ المعاملات ينبع من إدارة الوصول المتزامن إلى الحالة العالمية المشتركة دون خرق الحمضقواعد التحديث للأنظمة الموزعة. إذا كان لدى سلسلة كتل مجموعة من المعاملات تُنفذ بشكل متواز، فإن بعضها سيتعارض. نتيجة لذلك، تختلف النهجيتان الأساسيتان لتوازن وصول الحالة متوازيًا في مواعيد تكريس الموارد لحل النزاعات: النموذج التنفيذي التشاؤمي (أو قفل الذاكرة) والنموذج التنفيذي التفاؤلي.

تنفيذ متشائم

نموذج التنفيذ المتشائم هو نهج معالجة المعاملات يتطلب من المعاملات أن تعلن عن المتغيرات الحالة التي ستصل إليها (قراءة أو كتابة) خلال التنفيذ. يتم تضمين هذه المعلومات في البيانات الوصفية للمعاملة، مما يتيح للوقت الفعلي تحليل أنماط الوصول قبل التنفيذ.

من خلال فحص أنماط الوصول للقراءة والكتابة، يمكن للوقت الفعلي التعرف على المعاملات ذات مجموعات وصول غير متداخلة، مما يمكن تنفيذ المعاملات غير المتداخلة والقابلة للقراءة بشكل متوازٍ وتحسين الإنتاجية. ينشئ الوقت الفعلي طوابير معاملات متوازية لكل خيط معالج على عقدة محقق، مضمناً معالجة المعاملات ذات أنماط وصول غير متعارضة بشكل متزامن.

نتيجة لهذا الاختيار التصميمي، يستفيد نموذج التنفيذ المتشائم من التحكم الدقيق في تخصيص الموارد، مما يسمح بتقسيم أو تقسيم مساحة حالة سلسلة الكتل.

يؤدي التوازي بشكل فعال إلى إنشاء أجزاء تنفيذ مستقلة متعددة وقابلة للتركيب بشكل متزامن مدعومة بنموذج أمان موحد. يساعد في معالجة ازدحام الشبكة وتحسين تكاليف الغاز من خلال الإدارة الدقيقة للموارد وأسواق الرسوم الديناميكية. من خلال تحديد "النقاط الساخنة" للوصول إلى الحالة (المناطق ذات الطلب المرتفع على المعاملات) ، يمكن للنظام تنفيذ تحسينات مستهدفة مثل تسعير الرسوم المتباينة ، أو تحديد المعدل ، أو تخصيص موارد إضافية للولايات ذات التنافسات العالية. من المهم ملاحظة أن تنفيذ Solana الحالي للتوازي لا تحقيق الكامل لإمكانيات الأسواق المحلية للرسوم.

لضمان توافق البيانات في الوصول المتزامن، يستخدم نموذج التنفيذ التشاؤمي آلية قفل. قبل أن تتمكن المعاملة من الوصول إلى متغير الحالة معين، يجب أن تحصل على قفل على تلك المتغير. يوفر القفل للمعاملة وصولًا حصريًا إلى المتغير، مما يمنع المعاملات الأخرى من تعديله في وقت واحد. يتم إطلاق القفل بمجرد تنفيذ المعاملة، مما يسمح للمعاملات الأخرى بالوصول إلى المتغير.

في سولانامستوى سطح البحرالوقت التشغيلي، الذي ينفذ نموذج التنفيذ التشاؤمي هذا، تحدد المعاملات الحسابات التي ستقرأ أو تكتب خلال التنفيذ. يحلل Sealevel أنماط الوصول وينشئ طوابير معاملات متوازية لكل خيط CPU على عقدة الفاحص. إذا تم الوصول إلى حساب متعدد المرات، يتم إدراجه بتسلسل في طابور واحد لمنع الصراعات. تُجمع المعاملات التي لم يتم معالجتها ضمن وقت الكتلة الرئيسي لعقدة القائد وتُحيل إلى القائد القادم المجدول للمعالجة.

تعمل الأنظمة القائمة على مخرجات المعاملات غير المنفقة (UTXO) على تحسين الكفاءة الحسابية بالمثل. تتضمن UTXOs وحدات محددة من العملة - UTXOs - مرتبطة بمحفظة الفرد. لكل معاملة من معاملات المحفظة المذكورة ، يتم إنفاق UTXOs واستبدالها بأخرى جديدة ؛ يتم إنشاء واحد أو أكثر من UTXOs للمستلم ، يمثل الدفع ، ويتم إنشاء آخر عادة للبادئ ، يمثل أي تغيير مستحق.

من خلال تحديد العقود التي سيتم لمسها، يمكن تنفيذ معاملات تلامس مجموعات منفصلة من العقود بشكل متوازي من قبل تنفيذ العقد (التي يمكن تحقيقها في "الحسابات": نموذج البيانات مع قوائم وصول صارمة). ومع ذلك، للحصول على التوافق مع عقود الذكاء بأسلوب إيثيريوم، تقييدات نظم UTXO مثل Fuel تقيد تنفيذ العقد الذي ينتج الكتل لتنفيذ المعاملات بقوائم وصول تتداخل تتسلسليًا.

ومع ذلك ، فإن نموذج التنفيذ المتشائم له حدود. يجب أن تعلن المعاملات بدقة عن أنماط الوصول الخاصة بها مقدما ، مما قد يمثل تحديا للمعاملات المعقدة أو الديناميكية حيث قد تعتمد أنماط الوصول على بيانات الإدخال أو المنطق الشرطي. يمكن أن تتسبب تعريفات نمط الوصول غير الدقيقة أو غير المكتملة في أداء دون المستوى الأمثل وأخطاء محتملة في وقت التشغيل. بالإضافة إلى ذلك ، يمكن لآلية القفل إدخال زمن الوصول وتقليل التزامن عندما تتنافس العديد من المعاملات على نفس متغيرات الحالة. يمكن أن يشكل هذا الخلاف اختناقات في الأداء ، حيث قد تقضي المعاملات جزءا كبيرا من وقت تنفيذها في انتظار الحصول على أقفال على متغيرات الحالة عالية الطلب.

الأهم من ذلك، يضع هذا النموذج عبء كبيرًا على المطورين، الذين يجب أن يمتلكوا فهمًا عميقًا لتبعيات بيانات عقودهم لتحديد وصولات الحالة الضرورية مسبقًا بدقة. يمكن أن تقدم هذه التعقيدات تحديات، خاصة في تصميم التطبيقات ذات التفاعلات الحالية الديناميكية والمعقدة، مثل التبادلات اللامركزية أو صانعي السوق التلقائيين.

تنفيذ متفائل

على النقيض من ذلك، يعتمد نموذج التنفيذ المتفائل نهج "التكهني" في تنفيذ المعاملات، مما يتيح تنفيذ المعاملات بشكل متوازي دون الحاجة إلى إعلانات وصول الحالة المسبقة.

بدلاً من منع الصراعات قبل حدوثها، يتم تنفيذ المعاملات بتفاؤل بشكل متزامن، مفترضًا أنها مستقلة. يستخدم البرنامج تقنيات مثل نظام التحكم في التنافس متعدد الإصدارات(MVCC) والذاكرة التنفيذية البرمجية(STM) لتتبع مجموعات القراءة والكتابة أثناء التنفيذ. بعد التنفيذ، يكتشف الوقت الفعلي أي تضاربات أو تبعيات. يتخذ تدابير تصحيحية، مثل إحباط وإعادة تنفيذ المعاملات المتعارضة، ولكن يمكنه القيام بذلك عن طريق القراءة من الذاكرة بدلاً من القرص لتحديد المعاملات المتعارضة.

يبسط نموذج التنفيذ المتفائل عملية التطوير، مما يتيح للمبرمجين التركيز على كتابة منطق العقد دون القلق بشأن إعلان أنماط الوصول إلى الحالة. نظرًا لعدم حاجة المعاملات إلى إعلان تفاعلات حالتها مُسبقًا، يتمتع المطورون بمزيد من الحرية في تصميم عقودهم الذكية، مما يسمح بتفاعلات أكثر تعقيدًا ودينامية مع حالة سلسلة الكتل. يُعد نموذج التنفيذ المتفائل مناسبًا بشكل خاص للمنصات التي تدعم حجمًا كبيرًا من المعاملات وتطبيقات القرارات اللامركزية المعقدة، حيث يمكن أن يوفر إنتاجية أعلى وقابلية توسع أكبر من النموذج التشاؤمي.

تم العثور على تنفيذ ملحوظ لهذا النموذج في AptosونقلVM منحركة المختبرات، التي تستخدم تقنية تعرف باسمBlock-STM. في Block-STM، يتم تنفيذ المعاملات أولاً بشكل متوازي؛ ثم يتم تحديد المعاملات المتعارضة وجدولتها لإعادة التنفيذ بناءً على التبعيات المكتشفة. يضمن هذا النهج استخدام موارد المعالجة بشكل مستمر، مما يحسن معدل الإنتاجية مع الحفاظ على سلامة سير العمل التعاملي.

كتلة Aptos's STM من "توسيع تنفيذ تقنية السلسلة القائمة من خلال تحويل لعنة الترتيب إلى نعمة أداء"

على الرغم من مزاياه، يأتي نموذج التنفيذ المتفائل أيضًا مع تحديات. الحاجة إلى اكتشاف الصراعات أثناء التشغيل وإمكانية إلغاء المعاملات وإعادة المحاولات تقدم تكاليف حسابية وتعقيدًا. بالإضافة إلى ذلك، يتطلب الحفاظ على إصدارات متعددة من الحالة وإدارة التكاليف المرتبطة بحل الصراعات تصميم نظام متطور وآليات تحكم في التنافر قوية لضمان نزاهة وأداء البلوكشين.

Block-STM يستفيد من MVCC لإدارة الكتابات المتزامنة بشكل فعال والحفاظ على عدة نسخ من البيانات، وبالتالي منع الصراعات بين عمليات الكتابة المتزامنة. يدمج مخطط جدولة تعاوني لتنسيق مهام التنفيذ والتحقق عبر مواضيع متعددة، مما يضمن أن يتم تأكيد المعاملات بالترتيب الذي بدأت به. يقلل هذا الإعداد من إحباط المعاملات عن طريق استخدام تقدير الاعتماد الديناميكي، مما يسمح للمعاملات ذات التبعيات بالانتظار بكفاءة وحل هذه التبعيات قبل المضي قدمًا.

بالإضافة إلى ذلك، يختلف نموذج الحساب المستخدم من قبل MoveVM عن تلك المستخدمة في EVM الخاص بـ Ethereum، مما يؤدي إلى وقوع أقل عدد من التصادمات. في Ethereum، يتم إدارة الرمز المميز عادةً بواسطة عقد ذكي واحد، مما قد يتسبب في تفاعل عدة معاملات للرموز من خلال نفس عنوان العقد، مما يزيد من احتمال حدوث تعارضات. على العكس من ذلك، يخصص MoveVM الرموز لحسابات المستخدمين الفردية، مما يقلل من فرصة حدوث مثل هذه التعارضات حيث يتفاعل كل معاملة عادةً مع عناوين حسابات مختلفة.

في Monad، يمكن تأطير مجموعة العمليات الأولية التي تُنفَّذ بشكل متوازي على أنها مرحلة إدخال/إخراج، والتي قد تنتج نتائج يمكن التصديق عليها على الفور، والمرحلة التالية "إعادة المحاولة"، التي تتطلب كمية صغيرة من العمل لمعالجة العمليات المتضاربة المتبقية. تظهر هذه العمليات المتضاربة وتُدرج في الذاكرة المؤقتة، مما يسمح بتقليل العبء التنفيذي لأنها تعيش في الذاكرة. بينما تعيش معظم الحالة على القرص، يتم الوصول بسرعة إلى العمليات المتضاربة في وقت التنفيذ.

تقدم نماذج التنفيذ المتشائمة والتفاؤلية نهجًا مميزًا لمعالجة تنفيذ المعاملات وإدارة الحالة في سلاسل الكتل. ينطوي اختيار بين هذه النماذج على تنازلات بين تعقيد الوصول إلى الحالة في المواصفة والنفقات الحسابية المرتبطة بالقرار الديناميكي للصراع.

توازي البيانات والمهام

التوازي البياناتي والمهامي يركزان على تحسين الأداء من خلال توزيع الأعباء الحسابية عبر عدة معالجات: يقسم التوازي البياناتي مجموعة بيانات للمعالجة المتزامنة، بينما يعين التوازي المهامي مهامًا مختلفة لمعالجات مختلفة للتشغيل بشكل متزامن.

هذه البحث عن الأماني متميزة ولكن مترابطة مع التوازي في الوصول إلى الحالة، الذي يدير ويزامن الوصول إلى الموارد المشتركة مثل الذاكرة أو قواعد البيانات لمنع الصراعات وضمان سلامة البيانات عندما تعمل عمليات أو خيوط متعددة بشكل متزامن.

توازي البيانات

تتضمن التوازي البيانات توازي العمليات المحددة عبر عناصر البيانات المتعددة بشكل متزامن. يكون هذا النهج مفيدًا بشكل خاص عندما يتعين تطبيق نفس العملية على مجموعة بيانات كبيرة أو عند أداء عمليات حسابية مكثفة على قيم الإدخال المتعددة. يأتي مفتاح الفتح من توزيع البيانات عبر وحدات معالجة متعددة وتنفيذ نفس العملية بشكل متزامن على عناصر البيانات المختلفة.

واحدة من التقنيات الشائعة لتوزيع البيانات هي تعليمة واحدة، بيانات متعددة(SIMD)، الذي يسمح بتنفيذ تعليمة واحدة بشكل متزامن على عناصر بيانات متعددة. غالبًا ما تحتوي وحدات المعالجة المركزية الحديثة على قدرات SIMD مدمجة، مما يمكنها من تنفيذ عمليات متوازية على نقاط بيانات متعددة. من خلال استغلال تعليمات SIMD، يمكن للمطورين تحقيق تسريع كبير لأنواع معينة من العمليات، مثل الحسابات الرياضية، وتحويلات البيانات، أو معالجة الإشارات.

على سبيل المثال، اعتبر سيناريو حيث يتعين عليك تطبيق وظيفة رياضية معقدة على مجموعة كبيرة من الأرقام. بدلاً من معالجة كل رقم تسلسليًا، يمكن لتعليمات SIMD العمل على عدة أرقام بشكل متزامن. يتم تحقيق هذه المعالجة المتزامنة من خلال تحميل جزء من الأرقام إلى سجلات SIMD في وحدة المعالجة المركزية CPU، تنفيذ الوظيفة الرياضية على جميع الأرقام المحملة بشكل متوازٍ، ثم تخزين النتائج مرة أخرى في الذاكرة. من خلال معالجة عدة أرقام في نفس الوقت، يمكن لتعليمات SIMD تقليل الوقت الكلي للتنفيذ بشكل كبير.

عمل Firedancer على ED25519تثبت التحقق من التوقيع قوة SIMD في تحسين العمليات المعقدة. يشمل عملية التحقق من التوقيع عمليات حسابية داخل الحقول الجالوازية، والتي يمكن أن تكون مكلفة حسابيًا. من خلال استغلال تعليمات SIMD، يمكن لـ Firedancer تنفيذ هذه العمليات على عناصر بيانات متعددة بشكل متزامن، مما يؤدي إلى تحسينات أداء كبيرة. ستكون هذه التحسينات حاسمة في تحسين أداء Solana، التي قامت بتنفيذ توازي في وصول الحالة بالفعل.

توازن المهام

تتضمّن التّوازي المهمّاتيّ توازي المهام أو العمليّات المختلفة داخل برنامج عبر وحدات معالجة متعدّدة. هذا النهج مفيد عندما يتألّف البرنامج من مهام مستقلّة متعدّدة يُمكن تنفيذها بشكل متزامن. من خلال تخصيص كل مهمة إلى وحدة معالجة منفصلة، مثل نواة وحدة المعالجة المركزيّة أو وحدة معالجة الرسوميّات، يمكن تقليص الوقت الكلّي للتّنفيذ.

تستخدم التوازي المهام بشكل شائع في السيناريوهات التي يحتاج فيها البرنامج إلى أداء عمليات معقدة متعددة بشكل متزامن. على سبيل المثال، فكر في تطبيق معالجة الفيديو الذي يحتاج إلى تطبيق مرشحات وتأثيرات مختلفة على تيار الفيديو في الوقت الحقيقي. بدلاً من استخدام كل وحدة حساب لتطبيق كل مرشح بشكل جماعي بشكل تتابعي، يمكن للتوازي المهام توزيع العبء عبر العديد من وحدات المعالجة. يمكن أن تكون وحدة المعالجة الواحدة مسؤولة عن تطبيق مرشح وضوح بينما تطبق وحدة أخرى مرشح تصحيح اللون، وهكذا. من خلال تنفيذ هذه المهام بشكل متواز، يمكن للتطبيق تحقيق معالجة أسرع والحفاظ على تجربة مستخدم سلسة.

لاغرانج@lagrangelabs/a-big-data-primer-introducing-zk-mapreduce-12cf404eab75">ZK MapReduce (ZKMR) يستفيد من توازي البيانات والمهام بكفاءة وإنشاء إثباتات للحسابات الموزعة على مجموعات البيانات الكبيرة. في مرحلة الخريطة، يتم تقسيم مجموعة بيانات الإدخال إلى أجزاء أصغر، وتتم معالجة كل قطعة بشكل مستقل بواسطة عامل مخطط منفصل أو آلة بالتوازي (توازي المهام). يمكن موازاة عملية "الخريطة" داخل كل مهمة مخطط عبر مراكز أو معالجات متعددة (توازي البيانات). وبالمثل ، في مرحلة التقليل ، يمكن موازاة عملية "التقليل" على القيم المرتبطة بكل مفتاح داخل كل مهمة مخفض (توازي البيانات). في المقابل ، يتم تنفيذ مهام المخفض بالتوازي عبر عمال متعددين (توازي المهام).

من خلال الجمع بين توازي البيانات وتوازي المهام ، يمكن ل ZKMR تحقيق التوسع والأداء الفعال للحسابات المعقدة على مجموعات البيانات الضخمة مع الحفاظ على ضمانات المعرفة الصفرية من خلال تكوين إثبات متكرر.

التحقق من إجراء MapReduce تعسفي في ZK من Lagrange's “Introducing ZK MapReduce”

قدرة لاغرانج على إنشاء أدلة تخزين لحسابات SQL عبر @lagrangelabs/الإعلان عن تستنيت يوكليد - قاعدة بيانات إثيريوم الأولى التي يمكن التحقق منها ومعالج ZK-Coprocessor CC4a5595365c"؛> 888،888 فتحة تخزين في دقيقة و 20 ثانية تظهر قوة ZKMR، بالإضافة إلى التوازن والتوازي بين المهام والبيانات التي تعتمدها. وعلاوة على ذلك، الإنجاز الأخير للاغرانجأشجار ريكلييؤكد الورق على ضرورة التوازي في أنه يضمن أن دفاتر الدفع الدفعي للبيانات على السلسلة يمكن حسابها أيضًا في 𝑂(log𝑛)، بغض النظر عن حجم الدفعة.

توازي الاتفاق والتنفيذ

بينما لا يتناول هذا القطعة موضوع الاتفاق، يمكن للبلوكشينات أيضًا توازي عملية الاتفاق والتنفيذ. غالبًا ما تعالج البلوكشينات التقليدية المعاملات بشكل تسلسلي، حيث يتم التوصل إلى اتفاق بشأن معاملات الكتلة (الكتلة N) قبل تنفيذها. يعزز المعالجة المتوازية لمراحل الاتفاق والتنفيذ كفاءة التنفيذ بشكل كبير وهو تقنية يتمثل مثال لها في أنظمة مثل Monad. عندما يتوصل الشبكة إلى اتفاق بشأن الكتلة N، تقوم بتنفيذ المعاملات بشكل متزامن للكتلة السابقة (N-1).

تضمن هذه الاستراتيجية استخدام مستمر وفعال للموارد الحسابية، مما يقلل بشكل فعال من أوقات الخمول ويعزز قدرة الشبكة على معالجة المعاملات بسرعة. تزيد هذه التحسينات من كفاءة النظام وتكلفة رأس المال المطلوبة لمهاجمة الشبكة.

مترجمون وتقليل التكاليف

عند كتابة العقود الذكية بلغات مثل سوليديتي، يتم تجميعها أولاً إلى بايت‌كود مستوى أدنى. ثم، يستخدم EVM مترجمًا لتنفيذ هذا البايت‌كود. يقوم المترجم بقراءة وتنفيذ كل تعليمة تسلسليًا، على غرار ترجمة لغة أجنبية في الوقت الحقيقي أثناء تحدثها. لـ Paradigm’s آخر قطعة على Rethيشير إلى أن هذا يؤدي إلى تكاليف إضافية نظرًا لأنه يجب معالجة كل تعليمة بشكل فردي وتحويلها من بايت كود إلى تعليمات الجهاز خلال وقت التشغيل.

يقوم Reth بمعالجة عدم الكفاءة في EVM من خلال دمج مترجم (JIT) في الوقت المناسب. يترجم هذا المترجم البايت كود إلى رمز آلي أصلي قبل وقت قصير من التنفيذ، متجاوزاً عملية التفسير المستهلكة للموارد التي عادة ما تكون مطلوبة أثناء التشغيل.

البوابةمقال Rethيذكر أن 50% من وقت تنفيذ EVM في نظام قائم على المترجم مخصص لعمليات يمكن نظرياً أن يقوم JIT بتحسينها، مما يشير إلى إمكانية مضاعفة سرعة التنفيذ مع تنفيذ JIT. ومع ذلك، كما يشير Yilong إلىهذا العرض التقديمي, بينما يمكن لـ JIT أن يقلل بشكل كبير من الوقت اللازم لمعالجة تعليمات التشغيل الخاصة بشكل ملحوظ، قد لا يؤثر بشكل جذري على التنفيذ الكلي. هذا يرجع إلى أن جزءًا كبيرًا من 50% من أوقات تنفيذ EVM التي يستغرقها JIT يشملعمليات 'الاستضافة' و 'النظام' (الشريحة 13)، التي لا تصلح لتحسينات JIT مثل "الحسابية" أو "التحكم" بسبب طبيعتها غير الحسابية.

بينما قد تقيد المترجمات الأداء، إلا أنها تخلق فرصة لـ "الترجمة"، مما يزيد نطاق الرمز الذي يمكن الاستفادة منه في آلات الافتراضية الجديدة، ويقلل من الأعباء الزائدة على المطورين لاستخدام مساحة كتلة المصمم. على سبيل المثال، قامت Movement Labs بتطوير Fractal، مما يتيح للمطورين نشر عقودهم القائمة على Solidity على MoveVM. يعمل Fractal عن طريق تجميع Solidity إلى لغة وسيطة تحتوي على تعليمات متحدثة بأكواد EVM، التي يتم بعد ذلك تعيينها إلى أجزاء بايت من MoveVM الخاصة بها، مما يسمح لعقود Solidity بالتشغيل في بيئة MoveVM.

الآلات الحالية المتخصصة والمخصصة

تخصيص طبقة التنفيذ ينطوي على تصميم آلات حالة متخصصة محسنة لتطبيقات محددة. لا يعني هذا فقط أن بيئة التنفيذ يمكن أن تتجاوز الحاجة إلى جهاز افتراضي بالكامل، ولكنه أيضًا يمكن التطبيقات من تصميممجموعة تعليمات البنية المعمارية (ISA)، وهياكل البيانات، ونموذج التنفيذ إلى احتياجاتهم الخاصة. الفائدة الرئيسية من تخصيص ISA لتطبيق محدد تأتي من تقليل التكاليف الزائدة لترجمة أنماط الحوسبة للتطبيق إلى التعليمات العامة لـ ISA التقليدية. تستخدم وحدات المعالجة المركزية العامة مجموعات تعليمات أساسية (أي ، إضافة ، تحميل ، فرع) لدعم تشغيل أنواع مختلفة من البرامج. ومع ذلك، عندما تكرر التطبيقات العمليات نفسها متعددة الخطوات بشكل متكرر، يصبح تنفيذ هذه الأنماط باستخدام سلاسل من التعليمات البسيطة غير كفؤ.

على سبيل المثال، قد تحتاج تطبيقات قواعد البيانات إلى اجتياز هياكل بيانات الشجرة باستمرار، والبحث عن الإدخالات، وتحديث القيم، وإعادة توازن الأشجار. على وحدة المعالجة المركزية العادية ، يتطلب تعيين هذه العمليات ذات المستوى الأعلى تقسيمها إلى تسلسلات طويلة من العمليات الدقيقة منخفضة المستوى ، مثل الأحمال والمخازن والفروع والحساب ، وتنفيذها بشكل فردي على الأجهزة العامة. في المقابل ، يمكن ل ISA المخصص لقواعد البيانات دمج هذه الأنماط المتكررة في تعليمات أوسع محسنة تستفيد من الأجهزة المتخصصة. يمكن لتعليمات "TraverseTree" حساب عناوين الذاكرة وتحميل العقد ذات الصلة ومقارنة المفاتيح باستخدام دوائر المقارنة المتوازية المصممة لتلك العملية. يمكن ل "UpdateEntry" جمع الإدخال مباشرة من تخطيط تخزين قاعدة البيانات المحسن وتعديله والالتزام بالحالة الجديدة في تعليمات واحدة.

هذا يقضي على التكرار الزائد من ترجمة العمليات على مستوى عالٍ إلى تعليمات بسيطة. كما يتيح أيضا للأجهزة تنفيذ التطبيق بشكل أمثل باستخدام تعليمات موازية أقل ولكن أوسع، مصممة بدقة وفقًا لاحتياجاتها.

LayerN’s نوردتظهر فوائد الأداء لبيئات التنفيذ المتخصصة وهياكل البيانات من خلال حالة استخدامهم المحددة لدفتر الطلبات القابل للتحقق. يركز النهج الخاص بطبقة إن على تحسين وضع التجارات في هيكل بيانات دفتر الطلبات، بينما يتم تصميم آلية الأنابيب الخاصة بهم لإدراج الطلبات الجديدة بكفاءة في الموضع المناسب داخل شجرة بيانات دفتر الطلبات. من خلال تخصيص هيكل البيانات وخوارزمية الإدراج وفقًا لمتطلبات محددة لدفتر الطلبات، تحقق طبقة إن إدراج الطلبات بانخفاض التأخير وزيادة الإنتاجية العالية.

بدلاً من ذلك، من الممكن الاعتماد على بيئات التنفيذ متعددة الاستخدامات التي تمكن من وحدات برمجية قابلة للبرمجة بشكل تعسفي يمكن لتطبيقات توصيلها بها لتحسين أدائها. يعطي هذا النهج أولوية لتجربة المطور على الأداء الخام.

لغة سلسةوCWDاستخدم استراتيجية تحقق التوازن بين تحسين الأداء الحسابي الخام وتعزيز تجربة المطور وتوافق النظام البيئي. تركز هذه النهج على استخدام WebAssembly (Wasm) كجهاز افتراضي لتنفيذ الشفرة. أصبح Wasm خيارًا مفضلًا في تطوير الويب بسبب دعم اللغات الواسع ودرجة اعتماده الواسعة.

قرار المطور باستخدام Wasm بدلاً من تنفيذ العميل الأصلي يعكس تفضيلًا استراتيجيًا للقابلية للتعديل والوصول الواسع لبيئة التنفيذ العامة. على الرغم من أن التنفيذ الأصلي، الذي يقوم بتشغيل الكود مباشرة على الأجهزة بدون جهاز افتراضي، قد يقدم أداءً أفضل، إلا أنه يقيد التوافق عبر المنصات ويقلل من إمكانية الوصول للمطورين. على النقيض، يضمن Wasm بيئة تنفيذ موحدة وآمنة عبر منصات مختلفة على الرغم من عدم تحقيق نفس السرعة الخام كالتنفيذ الأصلي. يتماشى هذا التضحية مع فلوينت وفلوينت وتصميم CWD، مع الأولوية لإنتاجية المطور ودمج النظام البيئي الأوسع على حساب كفاءة الأداء القصوى.

نشر CosmWasm (CWD)، على وجه الخصوص، يُوضح هذا النهج بأنه لا يعتمد فقط على Wasm لتنفيذ العقود الذكية وإنما يدمجه أيضًا في إطار أكثر اتساعًا مصمم لدعم تفاصيل عمليات البلوكشين. معززًا بـ"المنطق الطرفي"، يقدم هذا الإطار إدارة حساب متقدمة، وآلية غاز قابلة للتخصيص، وترتيب معاملات مُحسّن. تُسهم هذه الميزات في توفير بيئة تطويرية مرنة وفعالة وآمنة تمكّن المطورين من بناء تطبيقات لامركبة ومعقدة بشكل نسبي بسهولة.

Stackr* يتبع نهجًا مختلفًا من خلال دمج فوائد بيئات التنفيذ المخصصة مع مرونة منصات العقود الذكية التقليدية. يتيح Stackr للمطورين كتابة تطبيقات ك rollups، مما يتيح لهم تحديد قواعدهم الخاصة لترتيب المعاملات والتنفيذ والتكوين. في نموذج Stackr، يمكن للمطورين اختيار ISA وهياكل البيانات ونموذج التنفيذ الذي يناسب متطلبات تطبيقهم بشكل أفضل.

تصميم اللف الميكروي لـ Stackr من "تقديم SDK Stackr"

مع Stackr، يمكن للمطورين تطبيق قواعد انتقال الحالة مباشرة في وقت تشغيل التطبيق بدلاً من أن تكون مقيدة بقواعد جهاز الظاهرة العام، مما يمنحهم القدرة على تبسيط مجموعة التعليمات الخاصة بهم لتكون أكثر كفاءة وإعادة تعريف مجموعة الأشياء التي يمكن القيام بها في بيئة تشغيل.

يؤدي هذا إلى تنفيذ أكثر خفة وكفاءة، حيث يتم تنفيذ منطق العمل في مستوى العميل، مما يقضي على الحاجة إلى استدعاءات وتحقق تكلفة العقود الذكية. ونتيجة لذلك، تتوسع الإمكانيات المتعلقة بكيفية تكوين تطبيق فيما يتعلق بأنواع مختلفة من اللغات والهياكل البيانية والتوقيعات التي يمكن للمطورين استخدامها لتطبيق واحد دون التضحية بالأداء.


استنتاج

هناك مسارات متعددة لتحقيق أداء طبقة التنفيذ الأمثل.

ليس هناك أي تحسين فردي لوصول الحالة أو التوازي يبرز كنقطة مميزة تقنيًا بين طبقات التنفيذ عند محاولة التقاط التطبيقات اللامركزية. كما مررنا به، يمكن تطبيق فوائد التوازي القائم على الموارد على نموذج UTXO الخاص بـ Fuel بنفس القدر الذي يمكن للجميع استخدام Amazon'sحلول مفيدة لتحسين التوسع الأفقي من خلال التجزئةوتحسين أداء طبقة التنفيذ.

بينما تعد أداء طبقة التنفيذ عاملاً حاسمًا لجذب بناة التطبيقات اللامركزية، يجب على ال L1s و L2s الجديدة التي تتمحور حول تحسين التنفيذ منافسة على متغيرات أخرى، بما في ذلك الأمان والتوافق الشامل والتوافق مع الأدوات الحالية. لهذا السبب، ستكون انتشار طبقات التوافق الجديدة - من Nebra إلى Statenet إلى AggLayer الخاص بـ Polygon - حاسمة للمطورين الذين يشترون مساحة الكتل المصممة، حيث يمكنهم بناء أو شراء مساحة كتل متخصصة دون التضحية بالقابلية للتركيب المتزامن والسيولة المشتركة لل L1s العامة والمتعددة الأغراض.

تعتمد تحسينات إدارة الحالة وكفاءة الحوسبة بشكل مترابط.

عبر المجتمعات التي تقوم بتصميم طبقات تنفيذ جديدة، أصبح توازي الوصول إلى الحالة هو ميم محدد للتحسينات في الأداء التي يعدون بتقديمها. وبينما يكون هذا لسبب وجيه، حيث يمكن أن يؤدي إلىتحسين بنسبة 5 مرات في تنفيذ EVM, الأدلة من تجارب Monad المبكرة في التوازي تظهر أن دورها مبالغ فيه إذا لم تتم تطوير تحسينات أخرى، مثل الإدخال/الإخراج اللازم.

بناءً على ذلك، يمكننا الاستنتاج أن الكفاءة الحسابية غالبًا ما تتحقق فقط عندما نحسن كيفية الوصول إلى الحالة وتخزينها. يقلل إدارة الحالة الفعالة من الوقت والموارد اللازمة للوصول إلى البيانات وتلاعبها، مما يسرع من عملية المعالجة ويقلل من الحمل الحسابي.

وفيما يتعلق بذلك، قد يكون الحاكمون يتخذون خيارات تعتمد على المسارات تعيق قدرتهم على المنافسة مع تصاميم سلسلة الكتل الجديدة التي تعيد تصميم كيفية إدارة وتحديث الحالة، نظرًا للكبح الذي ينطوي عليه الشوكة الصعبة. ونتيجة لذلك، قد تكون الطبقات التنفيذية المتخصصة والمعتمدة على الوحدات وال L1s البديلة قادرة على خلق قدرة دفاعية حول خيارات التصميم لتخزين الحالة بكفاءة أكبر والبروتوكولات للقراءة منها والكتابة إليها. تقدم هذه القرارات التصميمية ميزة تنافسية، حيث قد يواجه الحاكمون عائقًا في تحديث هياكل قواعدهم البياناتية دون شوكة صعبة.

في نهاية اليوم، تؤثر قيم مساحة الكتل على مساحة التصميم لطبقات التنفيذ.

في فهم كيف يمكننا تحسين طبقات التنفيذ، يمكننا الآن توضيح أن فئات البصريات تختلف وفقًا لخياري تصميم حرجيين — من يقوم بتنفيذ المعاملات، وكم عدد العقد التي تحتاج إلى المشاركة؟ الأساليب المتاحة للمطورين لحل عقبات التنفيذ تختلف بشكل كبير اعتمادًا على إجابات الفريق الأولية على هذه الأسئلة.

من جهة، المنصات الأحادية الكبيرة مثل سولانا وموناد لا تقبل فصل دور المحقق في العقدة إلى عقد قوية وضعيفة مختلفة لتسريع الأداء. "قبول" زيادة حالة في المدى القصير ليس حلاً قابلاً للتنفيذ، لذلك يعتمدون على التحسينات في طبقة قاعدة البيانات وغيرها من مكونات محرك إنتاج الكتل، مثل الاتفاق، لتعويض العدد الأكبر من العقد التنفيذية التي تعتبر جزءًا حرجًا وقيمة أساسية للشبكة. لأن النماذج الأمنية لهذه المنصات تعتمد على اتفاق مجموعة أكثر توزيعًا من المحققين ذوي متطلبات أجهزة أضعف، يجب كتابة بياناتهم إلى قاعدة بيانات تعيش على قرص، والذي يكون بالضرورة أرخص لبلوكشين لا إذنية وفائق اللامركزية.

من ناحية أخرى، تسعى مشاريع مثل إيثيريوم وطبقاتها L2 إلى خريطة طريق تميل نحو اللامركزية عبر عقدة تنفيذية مركزية من خلال بناة كتل مركزيين مسؤولين أمام عقدة مقترحي التحقق الأضعف من خلال دلائل الاحتيال أو الصحة.

نفترض أن "المنفذين" المركزيين للمعاملات والانتقالات الحالية يُعتبرون مقبولين في سعيهم نحو مستقبل مركزي. في هذه الحالة، تنص قوانين الفيزياء على أن الأنظمة التي يمكنها 1) إضافة كتل إلى سلسلة دون الحاجة إلى تنفيذ متعدد للمعاملات، 2) زيادة متطلبات المحقق لتعظيم الحساب في الذاكرة (وتجاهل مشكلة انتفاخ الحالة)، و 3) تقليل التأخير وعقبات التوافق يفوز بوضوح مقارنة بالأنظمة التي تعتمد على التمركز الواسع والاتفاق بين العقد.

بحثاً عن تحقيق التوازن بين قابلية التوسع وتقليل الثقة، يبدو أن الهدف من طبقات التنفيذ لا ينبغي أن يكون تحسين اللامركزية بشكل أعمى، ولا ينبغي دائمًا أن يكون التنفيذ مفتوحًا تمامًا.

أثناء تطويرنا وتنفيذ مجموعة أوسع من الأدوات التشفيرية، مثل الصحة وإثبات الاحتيال، نقوم بتقليل عدد العقد اللازمة بشكل فعال لمقاومة الرقابة وضمان الأمان والاستمرارية. ومع ذلك، تنطوي هذه النهج على تنازلات، قد تؤثر بشكل محتمل على مقاومة الرقابة ونزاهة الترتيب وضمانات الاستمرارية نظرًا لاحتمال تمركز المنفذين.

كما لاحظ Sreeram، فإن "اللامركزية القابلة للتطبيق الدنيا" لا تعني أن "التحقق يجب أن يكون بدون إذن" بل يجب أن "يكون محفزًا بشكل صحيح فقط". وهذا يعني أن النظام الذي يتم مراقبته جيدًا، حيث يواجه المحققون عواقب جسيمة عند ارتكابهم للسلوكيات الخاطئة، يمكن أن يحافظ على السلامة والحيوية دون الحاجة إلى لامركزية مفرطة (h/t Sreeram).

ويجري بالفعل اختبار نماذج الحوكمة هذه في التطبيقات العملية. على سبيل المثال ، تستكشف عمليات التجميع مثل Arbitrum الحوكمة أو الأنظمة القائمة على اللجان لفرض ترتيب المعاملات وقواعد اختيار القائد ، وهي تفكر في الآليات التي يستخدم فيها التسلسل بيانات onchain لدعم سياسات طلب المعاملات.

على الرغم من هذه التطورات ، لا توجد "حدود باريتو المثلى" النهائية لتحقيق التوازن بين اللامركزية والأداء.

الاعتبارات العقائدية والتقنية ما زالت تصب في صالح توزيع عقد التنفيذ للتحقق من الحالة. بينما يقلل تمركز العقد من العبء التوافقي ويمكن أن يعزز تحسين الأجهزة الأداء بشكل كبير، ومن غير الواضح ما إذا كانت هذه العمليات التحسينية ستجذب المطورين المركزين على إنشاء تطبيقات مقاومة للرقابة وإلى أي مدى تظل مقاومة الرقابة قيمة أساسية في الصناعة.

*يشير إلى شركة محفظة النموذج

تنصيح:

  1. يتم إعادة طبع هذه المقالة من [Gateمرآة )], إعادة توجيه العنوان الأصلي 'مساحة تصميم: مستقبل بيئات التنفيذ'، جميع حقوق النشر تنتمي إلى الكاتب الأصلي [ بنيامين فنك]. إذا كانت هناك اعتراضات على هذا الإعادة طبع، يرجى الاتصال بالبوابة تعلمالفريق، وسوف يتعاملون معها على الفور.

  2. إخلاء المسؤولية عن المسؤولية: الآراء والآراء المعبر عنها في هذه المقالة هي فقط تلك التي يعبر عنها المؤلف ولا تشكل أي نصيحة استثمارية.

  3. تتم ترجمة المقال إلى لغات أخرى من قبل فريق Gate Learn. ما لم يذكر، فإن نسخ أو توزيع أو سرقة المقالات المترجمة ممنوع.

Start Now
Sign up and get a
$100
Voucher!