
الكتابة: preda المصدر: chainfeeds
ملخص
النظر إلى التاريخ الموازي للكمبيوتر: التوازي في المستوى الأول هومستوى التعليم الموازيجوهرتعليمات التوازي هي الطريقة الرئيسية لتحسين الأداء في السنوات العشرين الماضية من القرن العشرين.تعليمات -التوازي على المستوى يمكن أن يحسن الأداء على فرضية أن البرنامج متوافق ثنائي ، وهو ما يحبه المبرمجين بشكل خاص.هناك نوعان من التعليمات بالتوازي.واحد هو الوقت المتوازي ، وهذا هو خط تجميع التعليمات.إن ترتيب خط التجميع مثل خط التجميع لإنتاج المصنع للسيارة ، سوف ينتج سيارات متعددة في نفس الوقت في عمليات متعددة.والآخر هو موازٍ للفضاء ، أي المزيد من الإطلاق ، أو يتجاوز المعيار.يشبه الإطلاق متعدد الطرق ، ويُسمح للتنفيذ خارج الترتيب بالتخلي عن الكميات المفرطة.بعد ظهور RISC في الثمانينات ، وصل مستوى التعليمات المتوازية بعد 20 عامًا إلى ذروة بعد عام 2010.
التوازي من المستوى الثانيالبيانات -مستوى التوازي، يشير بشكل أساسي إلى بنية المتجه للتيار المفرد (SIMD).ظهرت أقدم بيانات متوازية على مستوى على eniac.كانت آلة المتجهات التي يمثلها Cray في الستينيات والسبعينيات شائعة جدًا.حتى Cray-4 ، كان Simd صامتًا لفترة من الوقت ، والآن بدأ في استعادة الحيوية ، ويستخدم أكثر وأكثر.على سبيل المثال ، يمكن لتعليمات الوسائط المتعددة AVX في x86 استخدام قناة 256 Pit لإنشاء أربع عمليات 64 بت أو ثماني عمليات 32 بت.لعب SIMD ، كملحق فعال للتعليمات المتوازية ، دورًا مهمًا في مجال وسائط البث.
المستوى الثالث من التوازيالمهمة -مستوى التوازيجوهريوجد عدد كبير من المهام التوازي في تطبيق الإنترنت.ممثل التوازي المهمة -المستوى هو معالج متعدد الوسائط ومعالج متعدد الخيوط ، وهو الطريقة الرئيسية للهندسة المعمارية الحالية للكمبيوتر لتحسين الأداء.الحبيبية الموازية للمهمة الموازية ذات المستوى كبير ، ويحتوي الخيط على مئات من التعليمات أو أكثر.
من منظور تطوير الحوسبة المتوازية ، ما هو الآن في المستوى الأول من blockchain هو عملية الانتقال من المستوى الأول إلى المستوى الثاني.عادةً ما يتبنى نظام blockchain السائد بنية اثنين: بنية فردية أو متعددة.سلسلة واحدة ، مثل Bitcoin و Ethereum الشائعة ، يحتوي النظام بأكمله على سلسلة واحدة فقط.في كل عقدة blockchain ، يتم تنفيذ معاملات العقود الذكية عادة في التنفيذ التسلسلي ، مما يؤدي إلى انخفاض إنتاجية النظام بأكمله.
بعض من أنظمة blockchain عالية الأداء الحديثة ، على الرغم من تبني الهندسة المعمارية الفردية ، تدعم أيضًا التنفيذ الموازي لمعاملات العقود الذكية.اقترح توماس ديكرسون وموريس هيرليهي من جامعة براون وجامعة ييل أولاً نموذج تنفيذ موازٍ يعتمد على STM (ذاكرة المعاملات) في ورقة PODC’17. ، سوف يكمل تراجع الحالة من خلال STM ، ثم يؤدي معاملات الصراع الحكومية هذه التسلسلية.تم تطبيق هذه الطرق على مشاريع blockchain عالية الأداء متعددة ، بما في ذلك Aptos و SEI و Monad.في المقابل ، يعتمد نموذج تنفيذ متوازي آخر على التزامن المتشائم (المتوازي المتشائم) ، أي قبل تنفيذ المعاملة بالتوازي ، هناك تعارض بين حالة الوصول إلى المعاملة. .يستخدم هذا النوع من الأسلوب عادة طريقة ما قبل الحوسبة لاستخدام أدوات تحليل البرنامج لإجراء تحليل ثابت وبناء تبعيات الحالة على رمز العقد الذكي ، مثل اتجاه الرسم البياني غير المحدد (DAG).عندما يتم تقديم المعاملة المتزامنة إلى النظام ، يحدد النظام ما إذا كان يمكن تنفيذ المعاملة بالتوازي وفقًا لحالة احتياجات المعاملة وعلاقة التبعية بين احتياجات المعاملة.سيتم تنفيذ المعاملات التي ليس لها علاقة تعتمد على الحالة بين بعضها البعض.يتم تطبيق هذا النوع من الطريقة على Zilliqa (إصدار Cosplit) ومشاريع blockchain عالية الأداء مثل SUI.يمكن أن تحسن نماذج التنفيذ المتوازية أعلاه بشكل كبير من إنتاجية النظام.يتوافق هذان المخططان مع مستوى التعليمات المذكور أعلاه بالتوازي.ومع ذلك ، هناك مشكلتان في هذه المهام: 1) مشاكل قابلية التوسع و 2) مشكلات التعبير الدلالي المتوازي ، سنشرح بالتفصيل أدناه.
تصميم موازي
سوف نستخدم مشروع Solana و Monad النموذجي كمثال لتفكيك تصميمها المعماري المتوازي.
سولانا
من مستوى أعلى ، فإن مفهوم تصميم Solana هو أن ابتكار blockchain يجب أن يتطور مع تقدم الأجهزة.مع التحسين المستمر للأجهزة وفقًا لقانون مور ، تهدف سولانا إلى الاستفادة من الأداء العالي وقابلية التوسع.صممت شركة Solana Co -Founder Anatoly Yakovenko في البداية بنية التوازي لـ Solana منذ أكثر من خمس سنوات.
استخدام سولاناالتوازي التشويش(التوازي الحتمي) ، الذي يأتي من تجربة Anatoly في استخدام الأنظمة المدمجة في الماضي ، عادة ما يعلن المطورون جميع الولايات مقدمًا.يمكّن هذا وحدة المعالجة المركزية من فهم جميع التبعيات ، وذلك لفضل الجزء اللازم من الذاكرة.والنتيجة هي تحسين تنفيذ النظام ، ولكن الأمر نفسه ، يتطلب من المطورين القيام بعمل إضافي مقدمًا.في Solana ، تكون جميع تبعيات الذاكرة في البرنامج ضرورية ، وشرح في المُنشئ (أي قائمة الوصول) ، بحيث يمكن لوقت التشغيل ضبط معاملات متعددة وتؤدي بكفاءة.
المكون الرئيسي التالي من بنية سولانا هوSealevel VM،وهو يدعم العقود والمعاملات المتعددة بالتوازي وفقًا للكمية الأساسية لجهاز التحقق.التحققات في blockchain هي المشاركين في الشبكة ، مسؤولة عن التحقق من المعاملات وتأكيدها ، واقتراح كتل جديدة ، والحفاظ على سلامة وأمن blockchain.نظرًا لأن المعاملة المسبقة للحسابات التي تحتاج إلى قراءة وكتابة وإغلاقها ، يمكن لبرنامج جدولة Solana تحديد المعاملات التي يمكن تنفيذها بشكل متزامن.ولهذا السبب ، أثناء التحقق ، يمكن لـ “منتجي الكتلة” أو القادة فرز الآلاف من المعاملات التي تتم معالجتها ، والتعديل الموازي للمعاملات غير المتداخلة.
موناد
Monad يبني الطبقة الأولى من EVM المتوازي مع EVM متوازي كامل.لا يكمن تفرد موناد محركه المتوازي فحسب ، بل يكمن أيضًا في محرك التحسين الذي بنوه في الخلفية.تستخدم Monad طريقة فريدة لتصميمها العام ، حيث تجمع بين العديد من الوظائف الرئيسية ، بما في ذلك خطوط الأنابيب ، I/O غير المتزامن ، إجماع الفصل والتنفيذ ، و Monaddb.
على غرار SEI ، استخدام Monad blockchain“التفاؤل والتحكم في المرور (OCC)”تعال لتنفيذ المعاملة.عند وجود معاملات متعددة في النظام في نفس الوقت ، تحدث المعاملات المتزامنة.هناك مرحلتان من طريقة المعاملة هذه: التنفيذ والتحقق.
خلال مرحلة التنفيذ ، تكون المعاملات متفائلة ، ويتم تخزين جميع القراءة/الكتابة مؤقتًا في تخزين محدد للمعاملات.منذ ذلك الحين ، ستدخل كل معاملة مرحلة التحقق ، والتي سيتم تغييرها للتحقق من المعلومات الموجودة في عملية التخزين المؤقتة وفقًا لأي حالة يقوم بها المكتب السابق.إذا كانت المعاملة مستقلة ، فإن المعاملة تعمل بالتوازي.إذا قرأت إحدى المعاملات بيانات تعديل معاملة آخر ، فسيتم إنشاء الصراع.
الابتكار الرئيسي الذي صممه موناد هو سكة مع إزاحة طفيفة.تتيح هذه الإزاحة المزيد من العمليات بالتوازي عن طريق تشغيل مثيلات متعددة في نفس الوقت.لذلك ، يتم استخدام خط التجميع لتحسين العديد من الوظائف ، مثل الوصول إلى خط الأنابيب ، وخط أنابيب تنفيذ المعاملات ، وتوافق الإجماع ، وخطوط الأنابيب في آلية الإجماع نفسها في الشكل أدناه. خزانة.
>
في موناد ، يتم فرز المعاملات في الخطية في الكتلة ، ولكن الهدف هو تحقيق الحالة النهائية باستخدام التنفيذ المتوازي.مونادمتفائل والتوازيخوارزمية لتصميم محرك التنفيذ.يتولى محرك موناد المعاملة في نفس الوقت ، ثم يحلل لضمان أنه إذا تم تنفيذ المعاملة واحدة تلو الأخرى ، فستكون النتائج هي نفسها.إذا كانت هناك صراعات ، فأنت بحاجة إلى إعادة التنفيذ.يعد التنفيذ الموازي هنا خوارزمية بسيطة نسبيًا ، ولكنها تجمعها مع الابتكارات الرئيسية الأخرى لـ Monad لجعل هذه الطريقة رواية.أحد الأشياء التي يجب الإشارة إليها هنا هو أنه حتى إذا حدث إعادة التنفيذ ، فإنه عادة ما يكون رخيصًا جدًا ، لأن الإدخال المطلوب من قبل الوكالات غير الصالحة دائمًا يحتفظ بالذاكرة ، لذلك سيكون هذا البحث عن ذاكرة التخزين المؤقت البسيطة.ستكون إعادة التنفيذ ناجحة لأنك قمت بالفعل بتنفيذ المعاملات السابقة.
بالإضافة إلى تأخير التنفيذ ،Monad أيضًا يحسن الأداء عن طريق فصل التنفيذ والإجماععلى غرار سولانا و SEI.الفكرة هنا هي أنه إذا استرخت الشروط لإكمال التنفيذ عند اكتمال الإجماع ، فيمكن تشغيل الاثنين بالتوازي لجلب الوقت الإضافي إلى الاثنين.بالطبع ، يستخدم Monad خوارزمية اليقين للتعامل مع هذا الموقف للتأكد من أن أحدهم لن يركض بعيدًا ولا يمكنه اللحاق بالركب.
بغض النظر عما إذا كانت طرق التنفيذ المتوازية أو المتشائمة المتفائلة ، تستخدم الأنظمة المذكورة أعلاه ذاكرة مشتركة كتجريد لنماذج بيانات الطبقة السفلية ، أي بغض النظر عن مقدار الوحدات المتوازية ، يمكن للوحدات المتوازية الحصول على جميع البيانات (تشير هنا إلى جميع البيانات في بيانات blockchain) ، يمكن الوصول إلى بيانات الحالة مباشرة بواسطة عمليات إعدام متوازية مختلفة (أي ، يمكن قراءة جميع البيانات على جميع السلاسل والكتابة مباشرة بشكل متوازي).استخدم الذاكرة المشتركة كنظام blockchain كنموذج البيانات الأساسي.
لا يحتاج هذا النوع من الأسلوب المتوازي في هذه العقدة إلى تعديل بنية الطبقة التنفيذية للعقد الذكي ، ولا يحتاج إلى تعديل منطق طبقة إجماع النظام ، وهو مناسب جدًا لتحسين إنتاجية المنفردة الفردية نظام.لذلك ، لأنه لا يوجد شريحة من تخزين البيانات ،لا تزال كل عقدة في شبكة blockchain تحتاج إلى تنفيذ جميع المعاملات وتخزين جميع الحالاتجوهرفي الوقت نفسه ، مقارنة بالهندسة المعمارية المشتركة التي تعتبر أكثر ملاءمة للتمديدات الموزعة ، لا يمكن توسيع نطاق تجريد نظام تجريدي لنموذج البيانات الأساسي. لا يمكن أن تحل قدرات التنفيذ بشكل أساسي قابلية التوسع في blockchain.
فهل هناك حل جاهز؟
نموذج البرمجة الموازية
قبل تقديم Preda ، نأمل أن نطرح سؤالًا طبيعيًا ::لماذا تستخدم البرمجة الموازية؟في جزء من السبعينيات والثمانينيات ، وحتى جزء من التسعينيات ، كنا راضين للغاية عن البرمجة المفردة (أو البرمجة التسلسلية).يمكنك كتابة برنامج لإكمال المهمة.بعد انتهاء التنفيذ ، سوف يعطيك نتيجة.تم الانتهاء من المهمة ، سيكون الجميع سعداء للغاية!على الرغم من أن المهمة قد اكتملت ، ولكن إذا كنت تصنع الملايين أو حتى مليارات من محاكاة الجسيمات المحسوبة في الثانية ، أو تتم معالجتك بآلاف صور البكسل ، فستحتاج إلى تشغيل البرنامج بشكل أسرع ، وهذا يعني أنك بحاجة إلى وحدة المعالجة المركزية بشكل أسرع.
قبل عام 2004 ، يمكن لتصنيع وحدة المعالجة المركزية IBM و Intel و AMD أن توفر لك معالجًا أسرع وأسرع. وحدة المعالجة المركزية.ولكن بحلول عام 2004 ، بسبب القيود الفنية ، لا يمكن أن يستمر اتجاه زيادة سرعة وحدة المعالجة المركزية.هذا يتطلب تقنيات أخرى لمواصلة توفير أداء أعلى.يتمثل حل الشركة المصنعة لوحدة المعالجة المركزية في وضع وحدة المعالجة المركزية في وحدة المعالجة المركزية واحدة ، حتى لو كانت سرعة عمل وحدات المعالجة المركزية أقل من وحدة المعالجة المركزية واحدة.على سبيل المثال ، بالمقارنة مع وحدة المعالجة المركزية الفردية ذات السرعة بسرعة 300 ميجا هرتز ، يمكن لوحدة المعالجة المركزية (المصنعين يطلقون عليها الأساسية) إلى سرعة 200 ميجاهرتز يمكن أن تؤدي المزيد من الحسابات في الثانية (أي ، الحدس البديهي ، نظرة بديهية على 2 × 200 & gt ؛
يبدو أن قصة حلم “CPU Multi -Multi -Core” تصبح حقيقة واقعة ، مما يعني أنه يجب على المبرمجين الآن تعلم أساليب البرمجة المتوازية لاستخدام هذين النوى.إذا تمكنت وحدة المعالجة المركزية من أداء برنامجين في نفس الوقت ، فيجب على المبرمج كتابة هذين البرنامجين.ولكن هل يمكن تحويل هذا إلى مرتين سرعة تشغيل البرنامج؟إذا لم يكن الأمر كذلك ، فإن فكرة 2 × 200 & gt ؛ماذا لو لم يكن هناك ما يكفي من العمل؟وبعبارة أخرى ، فإن جوهر واحد فقط مشغول حقًا ، لكن جوهر آخر لا يفعل شيئًا؟في هذه الحالة ، من الأفضل استخدام نواة واحدة من 300 ميجاهرتز.بعد إدخال العديد من المشكلات ، تكون العديد من المشكلات المماثلة بارزة للغاية.
>
في الشكل أدناه ، نتخيل بوب وأليس كاثنين من اندفاع الذهب ، ويتطلب الاندفاع الذهبي أربع خطوات:
-
القيادة إلى المنجم
-
التعدين
-
تحميل خام
-
متجر وصقل
> تتكون عملية التعدين بأكملها من أربع مهام مستقلة ولكن منظمة ، وتستغرق كل مهمة 15 دقيقة.عندما يستمر Bob و Alice في نفس الوقت ، يمكنهما إكمال عبء عمل التعدين مرتين في ساعة واحدة -لأنهما لديهم سيارات خاصة بهما ، ويمكنهما مشاركة الطريق ، ويمكنهم مشاركة أداة التلميع. هذا هو أيضا طبيعة VM الموازية لسولانا ، المشاركة الأساسية. المشاركة الأساسية عنصر التصميم النهائي لسولانا هو“خط أنابيب”جوهرعندما تحتاج البيانات إلى معالجتها من خلال سلسلة من الخطوات والأجهزة المختلفة تكون مسؤولة عن كل خطوة ، تظهر عملية خط التجميع.الفكرة الرئيسية هنا هي الحصول على البيانات التي تتطلب التشغيل التسلسلي واستخدام خط الأنابيب لجعلها موازية.يمكن أن تعمل هذه الأنابيب بالتوازي ، ويمكن لكل خط أنابيب التعامل مع دفعات المعاملات المختلفة.كلما زادت سرعة معالجة الأجهزة (سعة تحميل مركبة التعدين) ، كلما زادت التوازي في جميع أنحاء.اليوم ، تتطلب عقدة Solana Hardware أن يكون لدى مشغلي العقدة الخاص بها مركزًا واحدًا فقط -مركز Data ، والذي يجلب الكفاءة ولكنه يغادر من النية الأصلية لـ blockchain. بعد ترقية مركبة التعدين ، نظرًا لأن قدرة التعدين لا يمكن أن تستمر في ذلك ، فإن مركبة التعدين غير راضية في كثير من الأحيان.لذا أنفق بوب سعرًا مرتفعًا لشراء آلات التعدين ، مما أدى إلى تحسين كفاءة التعدين (ترقية وحدة التنفيذ).10 نسخ من المعادن يمكن إنتاجها في نفس 15 دقيقة ، ولكن نظرًا لأن أعمال الطحن لا تزال تُنفذ باليد ، فإن الخام التي تم إنشاؤها بواسطة وحدات زمنية لم يتم تحويلها إلى مزيد من الذهب ، ويتم الضغط على المزيد من الخام من خلال الضغط يوضح هذا المثال ما يحدث عند الوصول إلى الذاكرة لسرعة تنفيذ البرنامج.مدى سرعة بيانات المعالجة (أي سرعة التشغيل الأساسية) غير ذات صلة.سنكون محدودين بسرعة الحصول على البيانات. > لذا فإن الاستنتاج هو أن موناد يمكن أن تصل بالفعل إلى موازاة ، ولكنيوجد التزامن في الحد النظري ، أي أنه يقع في فترة 2 إلى 3 مراتوليس 100 كيلو من دعايةها.ثانياً ، لا توجد وسيلة لتوسيع هذا الحد الأعلى عن طريق زيادة الجهاز الظاهري ، أي أنه لا توجد طريقة لتحقيق ما يعادل متعددة الوسائط لزيادة قدرة المعالجة.أخيرًا ، إنها مشكلة تتحدث دائمًا ، لأنه لا توجد بيانات تقطيع ، لا تجيب Monad فعليًا على متطلبات العقدة بعد توسيع الحالة. قد ترى حتما طريق موناد إلى سولانا.في النهاية ، النقطة الأكثر أهمية هي أن التنفيذ المتفائل غير مناسب للتوازي في حقل blockchain. > بعد التعدين لفترة من الوقت ، سأل بوب نفسه سؤالاً: “لماذا يجب أن أنتظر حتى تعود أليس ثم تلميع؟ عندما يكون مصقول ، يمكنني تحميل السيارة ، لأن وقت التحميل والتلميع هو نفسه تمامًا ، يجب أن نواجه ذلك حتى يتم تلميعها.والشيء المهم هو أن Bob قد أعاد تصميم البرنامج ، أي ترتيب تنفيذ مؤشرات الترابط ، بحيث لن تقع جميع المواضيع أبدًا في حالة انتظار موارد المشاركة الأساسية (مثل سيارات التعدين واختيارات الحجر). > لأنه فقط بالتوازي غير متزامن ، سوف تصل المواضيع المتزايدة إلى التحسن الخطي.بدلاً من ترقية سعة مركبة التعدين مثل المثال السابق ، لكن مركبة التعدين تعمل فارغة بسبب معدات التعدين المتخلفة.بيئة التنفيذ الموازية لـ Preda هي الفرق الأكثر أهمية بين Solana -تمامًا مثل الفرق بين وحدة المعالجة المركزية متعددة الأوساط و GPU. نفس وحدة معالجة الرسومات.في منطق blockchain ، ستقليل زيادة الخيط (VM) من الطلب على الأجهزة في العقدة بأكملها ، وبالتالي تحقيق تحسين الأداء في ظل فرضية ضمان اللامركزية. > > في النهاية ، نهاية هذا blockchain المتوازي. تمامًا مثل Nvidia يتطلب CUDA ، ويحتاج Blockchain المتوازي أيضًا إلى لغات برمجة جديدة: Preda.يتم التعبير عن مطوري العقود الذكية اليوم في دلالات متوازية ، والتي لا يمكنها استخدام الدعم بفعالية من قبل الهندسة المعمارية المتعددة الأساسيات (تقطيع البيانات أو تنفيذ الشظايا أو كليهما) ، ولا يمكن تحقيق الموازي الموازي الفعال للمعاملات العقد الذكي العام.تستخدم جميع الأنظمة لغات برمجة العقود الذكية التقليدية مثل الصلابة ، والتحرك ، والصدأ.تفتقر لغات البرمجة هذه إلى قدرة التعبير الدلالي المتوازي ، أي ليس لديها القدرة على التحكم في وتدفق البيانات بين نماذج البرمجة المتوازية والتعبير عن لغة البرمجة مثل CUDA أو نماذج البرمجة المتوازية في مجال الحوسبة عالية الأداء أو كبيرة حقول البيانات مثل كودا. لا يمكن إكمال عدم وجود نماذج برمجة متوازية ولغات البرمجة المناسبة للعقود الذكية. تحسين كفاءة تطبيق التطبيقات والإنتاجية الشاملة لنظام blockchain. يقوم نموذج البرمجة الموزعة الذي اقترحه PRODA ، من خلال نطاق العقد البرنامجي ، بإجراء تقسيم جيد للحالة ، ويوزع تحلل تدفق تنفيذ المعاملات من خلال تأخير التتابع الوظيفي من خلال التتابع الوظيفي يحدد هذا النموذج أيضًا مخطط تقسيم حالة العقد من خلال نطاق العقد البرمجي ، يسمح للمطورين بالتحسين وفقًا لطريقة الوصول إلى التطبيق للتطبيق.من خلال التتابع الوظيفي غير المتزامن ، يمكن نقل تدفق تنفيذ المعاملة إلى محرك التنفيذ الذي يجب الوصول إليه ، ويتم نقل حركة عملية التنفيذ بدلاً من حركة البيانات. يدرك هذا النموذج توزيع توزيع وتدفق المعاملات لحالة العقد دون الحاجة إلى الاهتمام بتفاصيل نظام السلاسل المتعددة الأساسية.تُظهر النتائج التجريبية أن نموذج PREDA على محرك التنفيذ 256 يمكنه تحقيق إنتاجية بحد أقصى 18 مرة ، وهو قريب من الحد الموازي النظري.من خلال استخدام تعليمات عداد التقسيم والتبادل ، يعزز التوازي. يستخدم نظام blockchain تقليديًا محرك تنفيذ ترتيب واحد (مثل EVM) للتعامل مع جميع المعاملات ، وبالتالي الحد من قابلية التوسع.يدير نظام السلسلة المتعددة محرك تنفيذ متوازي ، لكن كل محرك يتعامل مع جميع معاملات العقود الذكية ولا يمكنه تحقيق قابلية التوسع على مستوى العقد.تناقش هذه المقالة المشاركة الأساسية الأساسية للتوازي الدائم الذي يمثله سولانا ، ولماذا يمكن للتفاؤل والسلوك الذي يمثله موناد تشغيل و AMP في سيناريو تطبيق blockchain الحقيقي.وقدم محرك التنفيذ الموازي من Preda.اقترح فريق Preda نموذج برمجة جديد يقوم بتوسيع عقد ذكي واحد من خلال تقسيم حالة العقود الذكية وتخصيص تدفقات المعاملات عبر المحرك.يقدم نطاق العقود القابلة للبرمجة لتحديد تقسيم حالة العقد.يعمل كل نطاق على محرك تنفيذ مخصص.يتم استخدام التتابع الوظيفي غير المتزامن لتحلل تدفقات تنفيذ المعاملات ، ويحركه عبر المحرك عند البقاء في مكان آخر. > هذا يجمع بين منطق المعاملات وقسم حالة العقد ، والذي يسمح بالتوازي المتأصل دون تحريك البيانات النفقات العامة.إن نموذجها المتوازي قد انقسم ليس فقط في العقد الذكي ، فالفصل عن الاعتماد على مستوى إصدار البيانات ، ولكنه يوفر أيضًا بنية مجموعة المحرك متعددة الخيوط.الأهم من ذلك ، أنها أطلقت بشكل مبتكر نموذج برمجة جديد PREDA ، والذي قد يكون اللغز الأخير الذي تم الوصول إليه بواسطة blockchain الموازي.
ولكن إذا فشلت يوم واحد ، فشلت مركبة التعدين بوب.غادر سيارة التعدين في متجر الإصلاح ونسي اختيار الحديد لسيارة التعدين.لقد فات الأوان للعودة إلى مصنع المعالجة ، لكن لا يزال لديهم وظيفة للقيام به.هل يمكنهم استخدام مركبة التعدين من أليس ومقبض في الداخل ، هل لا يزال بإمكانهم اختيار خامين في الدقيقة؟
في القياس المذكور أعلاه ، تكون الخطوات الأربعة للتعدين هي جوهر التعدين (Core) ؛ : قبل تنفيذ الموضوع 1 ، لا يمكنك تنفيذ مؤشر الترابط 2.عدد المعادن التي تم حصادها يعني أداء البرنامج.كلما ارتفع الأداء ، زادت فوائد بوب وأليس.يمكنك التفكير في المنجم كذاكرة ، ويمكنك الحصول على وحدة بيانات (منجم الذهب) منه ، بحيث تشبه عملية اختيار خام في الموضوع 1 وحدات قراءة البيانات من الذاكرة.
الآن ، دعنا نرى ما سيحدث إذا فشلت مركبة التعدين في بوب.يحتاج Bob و Alice إلى مشاركة سيارة ، وهي ليست مشكلة في البداية. يتم تقييد عدد الخام التي يمكن إرسالها إلى مصقول من قبل “أقصى سيارة التعدين يمكن أن تستوعب المعادن”.لا يتم تقسيم الاعتماد على البيانات (مشاركة موارد الذاكرة)
ستقوم سرعة الإدخال/الإخراج البطيئة بإزعاجنا بشكل خطير ، لأن I/O هي أبطأ جزء من الكمبيوتر ، وسوف تصبح القراءة غير المتزامنة للبيانات (I/O غير المتزامن) أمرًا بالغ الأهمية.
حتى لو تمكن Bob من حفر 10 آلات تعدين في 15 دقيقة ، إذا كانت مسابقة الوصول إلى الذاكرة موجودة ، فستظل تقتصر على تعدين من جزأين كل 15 دقيقة.تنقسم مخططات blockchain المتوازية الحالية إلى فصيلين -تنفيذ متشائم وتنفيذ متفائل للحل الذي اقترحه هذه المسألة.
السابق يتطلب اعتماد حالة البيانات قبل كتابة البيانات والقراءة.هذا الأخير لا يقدم أي افتراضات وقيود على كتابة البيانات.
تم فحصها بواسطة خطة التنفيذ المتفائلة لـ MONAD: الحقيقة هي أن معظم عبء العمل هو تنفيذ المعاملات ، والمشاهد التي تحدث بالتوازي ليست كما هو متوقع.الصورة أدناه هي نوع مصدر استهلاك الغاز الخاص بـ Ethereum ؛المنطق الموازي للتنفيذ المتفائل ممكن في عصر Web2 ، لأن جزءًا كبيرًا من طلبات تطبيق Web2 هو الوصول ، وليس التعديل ؛ومع ذلك ، فإن حقل Web3 هو عكس ذلك تمامًا.
هذا هو الإصدار الصحيح من التوازي. .
يتعرض نموذج PRODA لطبقة التنفيذ من خلال تعريض بنية الوصول لرمز العقد في وقت رمز العقد ، بحيث يمكن لطبقة التنفيذ جدولة بسهولة وتجنب التراجع عن النتائج تمامًا.ويسمى هذا الوضع الموازي أيضًا غير متزامن.غير متزامن
التعبير الدلالي عن لغة البرمجة المتوازية
خاتمة