PREDA - مفردات EVMs متوازية غير متزامنة قابلة للتفكيك

PREDA (Parallel Relay Execution Distributed Architecture) هو نموذج مبتكر مصمم لتعزيز أداء وقابلية توسع شبكة البلوكشين. يحقق توازنًا كاملًا لوظائف العقود الذكية عن طريق تقسيم عملية تنفيذ العقود الذكية إلى خطوات متعددة يمكن معالجتها بشكل متوازٍ. يتم تنفيذ هذه الخطوات بشكل غير متزامن عبر مختلف مثيلات آلة إيثريوم الافتراضية (EVM)، مما يعزز قدرة التوازي لمجموعة من المعاملات.

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

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

1. غير متزامن قابل للتفكيك

في سعيها لتحقيق أداء متنامي في تكنولوجيا البلوكشين، حظي تنفيذ العقود الذكية الفرديّة بانتباه كبير. في الأساليب التقليدية، كان أداء كل عقد ذكي مقيدًا بقدرات جهاز افتراضي واحد (EVM)، حتى مع ظهور أنظمة السلاسل المتعددة أو الطبقة 2. تقدم الآلات الافتراضية المتوازية حلاً واعدًا، يسمح بتنفيذ معاملات عقد ذكي واحد بشكل متزامن، مما يستفيد من المزيد من أنوية وحدة المعالجة المركزية لتحسين الأداء.

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

قبل الغوص في تفاصيل الأمور الدقيقة، دعونا نوضح أولاً ما يشير عدة مصطلحات رئيسية إلى في هذه القطعة:

Tx1= المعاملة 1

Tx2 = المعاملة 2

نحن نفترض أن,

تنفيذ Tx1 يحتاج إلى تغيير الحالة A والحالة B والحالة C

تنفيذ Tx2 يحتاج إلى تغيير الحالة A والحالة D والحالة E

أساليب التوازي الحديثة لـ EVMs¹، مثل تلك المنفذة بواسطة Sei، Aptos، و Sui، تحاول تنفيذ جميع الخطوات في كل معاملة بشكل متزامن. تخيل التكبير على مشهد معاملة واحدة، في هذه الأنظمة يتم تنفيذ معاملة داخل ارتفاع كتلة واحد، بغض النظر عن طبيعة تبعيات البيانات المبعثرة (أي الوصول إلى قطع مختلفة من حالات العقد). نتيجة لذلك، إذا كان أي خطوة من حالات العقد التي تم الوصول إليها مشتركة أو تم تحديثها بين معاملتين، فإنها تُعرف على أنها تتعارض القراءة-الكتابة أو الكتابة-الكتابة ولا يمكن تنفيذها بشكل متوازي، معوقةً الإنتاجية وقابلية التوسع الكلية للنظام. تزداد هذه الحالة سوءًا بشكل كبير عندما ترتفع نشاطات السلسلة الرئيسية فجأة.

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

2. تقييم الأداء

تتم إعادة تشغيل معاملات نقل الرمز المميز ETH التاريخية لتقييم Sei (V2) و Aptos و Sui و PREDA ، من خلال الإنتاجية وقابلية التوسع. لاحظ أن تقييمنا يستخدم معاملات نقل رمز ETH التاريخية في العالم الحقيقي بدلا من إنشاء مجموعة من معاملات التحويل بين أزواج عشوائية من العناوين. ستنتج المعاملات العشوائية نتيجة تجريبية بشكل مفرط على الأداء في حالات الكلمات الحقيقية لأن معاملات العالم الحقيقي تتضمن عناوين مرتبطة بطريقة أو بأخرى ، والتي تقدم قدرا كبيرا من تبعيات البيانات.

تمثيلات التجارب كالتالي:

تؤكد المقارنة في الشكل 1 ضرورة اعتماد نموذج برمجة PREDA لتحقيق تحسينات كبيرة في الإنتاجية. يظهر PREDA 3.3 مرة - 28.2 مرة أعلى TPS من Aptos لعمليات التحويل التاريخية الحقيقية على شبكة Ethereum.

نظرًا لتنفيذ هذه الأنظمة بلغات مختلفة (بما في ذلك Go و Rust و C++) وآلات افتراضية مختلفة، نقوم بتقييم قابلية التوسع لأنظمة مختلفة بناءً على الزيادة النسبية في الأداء عن القاعدة باستخدام EVM واحد، لاستبعاد تأثير تنفيذ النظام المختلف.

الشكل 1. أرقام الإنتاجية المطلقة في TPS لعقود التحويل المكافئة التي تم تنفيذها على Sei و Aptos و Sui و PREDA

الشكل 2. تسارع نسبي لـ Aptos و Sui و Sei و PREDA على أساسها الخاص

3. نموذج البرمجة

لتسهيل فهم بريدا لأي شخص ملم بـEVM الموازي، يوجد نوعان نموذجيان من آليات التوازي في أنظمة سلسلة الكتل EVM الموازية في الوقت الحاضر¹.

  • التوازي المتفائل، بما في ذلك Aptos و Sei (V2) و Monad، يتجاهل تبعيات الحالة بين المعاملات، ينفذ ويوثق المعاملات بشكل متزامن، ويعيد تنفيذ المعاملة في حالة حدوث صراع.
  • التوازي التشاؤمي ، بما في ذلك سولانا (سيفليفل) ، سوي ، وسي (V1) ، قبل تنفيذ كل عملية ، يتم فحص تبعيات الحالة وتحليل تبعيات الحالة لها ، وتنفيذ هذه العمليات بشكل متزامن فقط دون تعارض.

كلا الطريقتين تتبعان هندسة المشاركة في كل شيء وتعامل المعاملة ككل في التحكم التزامني؛ جميع الخطوات (مثل الوصول إلى حالات العقد المختلفة) لا يمكن تفكيكها ويجب تنفيذها بشكل متزامن. يقترح نموذج PREDA @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a">الهندسة المعمارية المشتركة لعدم الاعتماد على الحالة لكسر الاعتمادات الحالية وضمان عدم وصول مثيلات EVM المختلفة إلى نفس الجزء من حالة العقد، مما يجنب تضارب الكتابة تمامًا.

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

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

في كل EVM ، يتم ترتيب وتنفيذ المعاملات التي يبدأها المستخدم والمعاملات الباقية بشكل متتالٍ ، بينما تُنفذ المعاملات على EVM مختلفة بشكل متزامن لأنه لا توجد تبعيات بيانات بين EVMs. يتجنب هذا الآلية إعادة تنفيذ المتعلقة بالصراع في الأساليب المعتمدة على التوازي التفاؤلي وحاجة تحليل تبعية حالة التشغيل والتكلفة الإضافية للقفل / فتح العمليات في الأساليب المعتمدة على التوازي التشاؤمي. وبالتالي ، يوفر PREDA هندسة معمارية متوازية وغير مشتركة لأنظمة البلوكشين ، مختلفة عن الهندسة المتسلسلة والمشتركة في كل من Solidity و Move ، والتي قد تسبب تكلفة معالجة التحكم المتزامنة الكبيرة.

4. اللغة

قمنا بتنفيذ نموذج البرمجة PREDA كلغة تشبه Algo، مشابهة لـ C/C++ و Javascript. يلي وظيفة نقل الرمز المبسطة في كل من Solidity ولغة PREDA.

يتضمن الكود Solidity في الشكل (أ) حالة العقد (الأرصدة) التي تمثل أرصدة العناوين ووظيفة النقل لنقل كمية محددة من الرموز من مرسل المعاملة (msg.sender) إلى المستلم (payee).

في تنفيذ PREDA الموضح في الشكل (ب)، الكلمة المفتاحية @addressيحدد نطاقات العقود البرمجية ، حيث يتم تقسيم حالات العقد التابعة لمتغير العقد (الرصيد) حسب العنوان ويتم تشتيتها وإدارتها بواسطة EVMs. يحدد الكلمة المفتاحية relay ريليه وظيفيًا غير متزامن.

هناك ثلاثة أجزاء في تنفيذ PREDA. في الجزء (1)، الكلمة الرئيسية @addressيحدد أرصدة المستخدمين، ويوفر وصفًا دقيقًا وقابلًا للفصل للحالة. المتغير المدى عنوان الرصيد لديه مثيل فريد لكل عنوان مستخدم. يتم الوصول إلى مثيلات عناوين المستخدم المختلفة وصيانتها بواسطة EVMs مختلفة غير متداخلة. تم تحديد وظيفة التحويل في نطاق العنوان نفسه في الجزء (2)، وتتم استدعاؤها عن طريق توفير عنوان المدفوع كنطاق هدف عند تهيئة عملية التحويل بواسطة المستخدم. في الجزء (3)، لمتابعة عملية الإيداع للمستفيد بعد سحب ناجح، يتم بدء إعادة التوجيه بعنوان المستفيد كنطاق هدف، وإضافة الأموال إلى رصيد المستفيد وتنفيذها بواسطة EVM يستضيف مثيل الرصيد لعنوان المستفيد.

تدفق التنفيذ لعملية نقل الرمز في PREDA

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

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

Next and Beyond

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

تتجاوز عمومية PREDA استخدامها لـ@addressتقسيم حالات العقد حسب العنوان. يسمح بأنواع التقسيم المخصصة باستخدام كلمات مفتاحية مثل@type، حيث يمكن أن يكون النوع أي نوع أولي في Solidity مثل @uint. بالإضافة إلى ذلك، يدعم PREDA حالات العقود غير المجزأة مع @global، مما يضمن أن كل وحدة تنفيذ ظاهرة تعاقدية (EVM) تحافظ على قيم متسقة لمثل هذه الحالات. يعزز هذا المرونة في تجزئة الحالة من قدرة النموذج على التكيف والفعالية عبر عقود ذكية متنوعة.

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

تنويه:

  1. هذه المقالة هي إعادة نشر من [ متوسط]. حقوق النشر تنتمي إلى المؤلف الأصلي، [PREDA Parallel VMs]. إذا كان لديك أي اعتراضات بشأن هذا النشر المنقول، يرجى الاتصال بـفريق gate Learn. سيقوم الفريق بمعالجة مخاوفك بسرعة وفقا للإجراءات ذات الصلة.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذا المقال هي فقط تلك التي تعود إلى المؤلف ولا تشكل نصيحة استثمارية.
  3. فريق Gate Learn قام بترجمة المقالة إلى لغات أخرى. يُمنع نسخ أو توزيع أو سرقة المقالات المترجمة ما لم يُذكر.

PREDA - مفردات EVMs متوازية غير متزامنة قابلة للتفكيك

متوسط1/8/2025, 11:14:01 AM
PREDA (Parallel Relay Execution Distributed Architecture) هو نموذج مبتكر مصمم لتعزيز أداء وقابلية توسع شبكة البلوكشين. يحقق توازنًا كاملًا لوظائف العقود الذكية عن طريق تقسيم عملية تنفيذ العقود الذكية إلى خطوات متعددة يمكن معالجتها بشكل متوازٍ. يتم تنفيذ هذه الخطوات بشكل غير متزامن عبر مختلف مثيلات آلة إيثريوم الافتراضية (EVM)، مما يعزز قدرة التوازي لمجموعة من المعاملات.

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

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

1. غير متزامن قابل للتفكيك

في سعيها لتحقيق أداء متنامي في تكنولوجيا البلوكشين، حظي تنفيذ العقود الذكية الفرديّة بانتباه كبير. في الأساليب التقليدية، كان أداء كل عقد ذكي مقيدًا بقدرات جهاز افتراضي واحد (EVM)، حتى مع ظهور أنظمة السلاسل المتعددة أو الطبقة 2. تقدم الآلات الافتراضية المتوازية حلاً واعدًا، يسمح بتنفيذ معاملات عقد ذكي واحد بشكل متزامن، مما يستفيد من المزيد من أنوية وحدة المعالجة المركزية لتحسين الأداء.

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

قبل الغوص في تفاصيل الأمور الدقيقة، دعونا نوضح أولاً ما يشير عدة مصطلحات رئيسية إلى في هذه القطعة:

Tx1= المعاملة 1

Tx2 = المعاملة 2

نحن نفترض أن,

تنفيذ Tx1 يحتاج إلى تغيير الحالة A والحالة B والحالة C

تنفيذ Tx2 يحتاج إلى تغيير الحالة A والحالة D والحالة E

أساليب التوازي الحديثة لـ EVMs¹، مثل تلك المنفذة بواسطة Sei، Aptos، و Sui، تحاول تنفيذ جميع الخطوات في كل معاملة بشكل متزامن. تخيل التكبير على مشهد معاملة واحدة، في هذه الأنظمة يتم تنفيذ معاملة داخل ارتفاع كتلة واحد، بغض النظر عن طبيعة تبعيات البيانات المبعثرة (أي الوصول إلى قطع مختلفة من حالات العقد). نتيجة لذلك، إذا كان أي خطوة من حالات العقد التي تم الوصول إليها مشتركة أو تم تحديثها بين معاملتين، فإنها تُعرف على أنها تتعارض القراءة-الكتابة أو الكتابة-الكتابة ولا يمكن تنفيذها بشكل متوازي، معوقةً الإنتاجية وقابلية التوسع الكلية للنظام. تزداد هذه الحالة سوءًا بشكل كبير عندما ترتفع نشاطات السلسلة الرئيسية فجأة.

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

2. تقييم الأداء

تتم إعادة تشغيل معاملات نقل الرمز المميز ETH التاريخية لتقييم Sei (V2) و Aptos و Sui و PREDA ، من خلال الإنتاجية وقابلية التوسع. لاحظ أن تقييمنا يستخدم معاملات نقل رمز ETH التاريخية في العالم الحقيقي بدلا من إنشاء مجموعة من معاملات التحويل بين أزواج عشوائية من العناوين. ستنتج المعاملات العشوائية نتيجة تجريبية بشكل مفرط على الأداء في حالات الكلمات الحقيقية لأن معاملات العالم الحقيقي تتضمن عناوين مرتبطة بطريقة أو بأخرى ، والتي تقدم قدرا كبيرا من تبعيات البيانات.

تمثيلات التجارب كالتالي:

تؤكد المقارنة في الشكل 1 ضرورة اعتماد نموذج برمجة PREDA لتحقيق تحسينات كبيرة في الإنتاجية. يظهر PREDA 3.3 مرة - 28.2 مرة أعلى TPS من Aptos لعمليات التحويل التاريخية الحقيقية على شبكة Ethereum.

نظرًا لتنفيذ هذه الأنظمة بلغات مختلفة (بما في ذلك Go و Rust و C++) وآلات افتراضية مختلفة، نقوم بتقييم قابلية التوسع لأنظمة مختلفة بناءً على الزيادة النسبية في الأداء عن القاعدة باستخدام EVM واحد، لاستبعاد تأثير تنفيذ النظام المختلف.

الشكل 1. أرقام الإنتاجية المطلقة في TPS لعقود التحويل المكافئة التي تم تنفيذها على Sei و Aptos و Sui و PREDA

الشكل 2. تسارع نسبي لـ Aptos و Sui و Sei و PREDA على أساسها الخاص

3. نموذج البرمجة

لتسهيل فهم بريدا لأي شخص ملم بـEVM الموازي، يوجد نوعان نموذجيان من آليات التوازي في أنظمة سلسلة الكتل EVM الموازية في الوقت الحاضر¹.

  • التوازي المتفائل، بما في ذلك Aptos و Sei (V2) و Monad، يتجاهل تبعيات الحالة بين المعاملات، ينفذ ويوثق المعاملات بشكل متزامن، ويعيد تنفيذ المعاملة في حالة حدوث صراع.
  • التوازي التشاؤمي ، بما في ذلك سولانا (سيفليفل) ، سوي ، وسي (V1) ، قبل تنفيذ كل عملية ، يتم فحص تبعيات الحالة وتحليل تبعيات الحالة لها ، وتنفيذ هذه العمليات بشكل متزامن فقط دون تعارض.

كلا الطريقتين تتبعان هندسة المشاركة في كل شيء وتعامل المعاملة ككل في التحكم التزامني؛ جميع الخطوات (مثل الوصول إلى حالات العقد المختلفة) لا يمكن تفكيكها ويجب تنفيذها بشكل متزامن. يقترح نموذج PREDA @devteam_48518/crystality-the-parallel-evm-model-implementing-shared-nothing-architecture-8d82fc0a836a">الهندسة المعمارية المشتركة لعدم الاعتماد على الحالة لكسر الاعتمادات الحالية وضمان عدم وصول مثيلات EVM المختلفة إلى نفس الجزء من حالة العقد، مما يجنب تضارب الكتابة تمامًا.

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

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

في كل EVM ، يتم ترتيب وتنفيذ المعاملات التي يبدأها المستخدم والمعاملات الباقية بشكل متتالٍ ، بينما تُنفذ المعاملات على EVM مختلفة بشكل متزامن لأنه لا توجد تبعيات بيانات بين EVMs. يتجنب هذا الآلية إعادة تنفيذ المتعلقة بالصراع في الأساليب المعتمدة على التوازي التفاؤلي وحاجة تحليل تبعية حالة التشغيل والتكلفة الإضافية للقفل / فتح العمليات في الأساليب المعتمدة على التوازي التشاؤمي. وبالتالي ، يوفر PREDA هندسة معمارية متوازية وغير مشتركة لأنظمة البلوكشين ، مختلفة عن الهندسة المتسلسلة والمشتركة في كل من Solidity و Move ، والتي قد تسبب تكلفة معالجة التحكم المتزامنة الكبيرة.

4. اللغة

قمنا بتنفيذ نموذج البرمجة PREDA كلغة تشبه Algo، مشابهة لـ C/C++ و Javascript. يلي وظيفة نقل الرمز المبسطة في كل من Solidity ولغة PREDA.

يتضمن الكود Solidity في الشكل (أ) حالة العقد (الأرصدة) التي تمثل أرصدة العناوين ووظيفة النقل لنقل كمية محددة من الرموز من مرسل المعاملة (msg.sender) إلى المستلم (payee).

في تنفيذ PREDA الموضح في الشكل (ب)، الكلمة المفتاحية @addressيحدد نطاقات العقود البرمجية ، حيث يتم تقسيم حالات العقد التابعة لمتغير العقد (الرصيد) حسب العنوان ويتم تشتيتها وإدارتها بواسطة EVMs. يحدد الكلمة المفتاحية relay ريليه وظيفيًا غير متزامن.

هناك ثلاثة أجزاء في تنفيذ PREDA. في الجزء (1)، الكلمة الرئيسية @addressيحدد أرصدة المستخدمين، ويوفر وصفًا دقيقًا وقابلًا للفصل للحالة. المتغير المدى عنوان الرصيد لديه مثيل فريد لكل عنوان مستخدم. يتم الوصول إلى مثيلات عناوين المستخدم المختلفة وصيانتها بواسطة EVMs مختلفة غير متداخلة. تم تحديد وظيفة التحويل في نطاق العنوان نفسه في الجزء (2)، وتتم استدعاؤها عن طريق توفير عنوان المدفوع كنطاق هدف عند تهيئة عملية التحويل بواسطة المستخدم. في الجزء (3)، لمتابعة عملية الإيداع للمستفيد بعد سحب ناجح، يتم بدء إعادة التوجيه بعنوان المستفيد كنطاق هدف، وإضافة الأموال إلى رصيد المستفيد وتنفيذها بواسطة EVM يستضيف مثيل الرصيد لعنوان المستفيد.

تدفق التنفيذ لعملية نقل الرمز في PREDA

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

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

Next and Beyond

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

تتجاوز عمومية PREDA استخدامها لـ@addressتقسيم حالات العقد حسب العنوان. يسمح بأنواع التقسيم المخصصة باستخدام كلمات مفتاحية مثل@type، حيث يمكن أن يكون النوع أي نوع أولي في Solidity مثل @uint. بالإضافة إلى ذلك، يدعم PREDA حالات العقود غير المجزأة مع @global، مما يضمن أن كل وحدة تنفيذ ظاهرة تعاقدية (EVM) تحافظ على قيم متسقة لمثل هذه الحالات. يعزز هذا المرونة في تجزئة الحالة من قدرة النموذج على التكيف والفعالية عبر عقود ذكية متنوعة.

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

تنويه:

  1. هذه المقالة هي إعادة نشر من [ متوسط]. حقوق النشر تنتمي إلى المؤلف الأصلي، [PREDA Parallel VMs]. إذا كان لديك أي اعتراضات بشأن هذا النشر المنقول، يرجى الاتصال بـفريق gate Learn. سيقوم الفريق بمعالجة مخاوفك بسرعة وفقا للإجراءات ذات الصلة.
  2. تنصل المسؤولية: الآراء والآراء المعبر عنها في هذا المقال هي فقط تلك التي تعود إلى المؤلف ولا تشكل نصيحة استثمارية.
  3. فريق Gate Learn قام بترجمة المقالة إلى لغات أخرى. يُمنع نسخ أو توزيع أو سرقة المقالات المترجمة ما لم يُذكر.
ابدأ التداول الآن
اشترك وتداول لتحصل على جوائز ذهبية بقيمة
100 دولار أمريكي
و
5500 دولارًا أمريكيًا
لتجربة الإدارة المالية الذهبية!