إليك كيف يعمل عملية Solidity الأساسية من الداخل. خذ تعبيرًا بسيطًا مثل uint c = a + b — يبدو بسيطًا عند كتابته، لكن المترجم يترجمه إلى شيء مختلف تمامًا على مستوى رمز البايت.
بمجرد الترجمة، تحصل على رموز تشغيل تبدو تقريبًا هكذا: PUSH1 a PUSH1 b ADD
هذه هي لغة الـ EVM تتحدث. يتم تنفيذ كل أمر واحد تلو الآخر. يعالج العميل كل رمز تشغيل بشكل متسلسل، يدفع القيم على المكدس، ينفذ العمليات، ويتجه إلى الأمر التالي. لا اختصارات، لا سحر — فقط سلسلة حتمية من الخطوات التي تحول كودك عالي المستوى إلى عمليات قابلة للتنفيذ على الآلة.
لهذا السبب تعتبر تحسينات الغاز مهمة جدًا في تطوير البلوكشين. كل رمز تشغيل له تكلفة، وفهم ما يتم توليده من رمز البايت من Solidity الخاص بك هو الفرق بين العقود الذكية الفعالة والمهدرة.
شاهد النسخة الأصلية
قد تحتوي هذه الصفحة على محتوى من جهات خارجية، يتم تقديمه لأغراض إعلامية فقط (وليس كإقرارات/ضمانات)، ولا ينبغي اعتباره موافقة على آرائه من قبل Gate، ولا بمثابة نصيحة مالية أو مهنية. انظر إلى إخلاء المسؤولية للحصول على التفاصيل.
تسجيلات الإعجاب 10
أعجبني
10
5
إعادة النشر
مشاركة
تعليق
0/400
SelfSovereignSteve
· منذ 5 س
أول مرة أدرك أن الكود الذي نكتبه بسيط جدًا وعنيف، مجرد stack يندفع ويُسحب بشكل مجنون
جزء الغاز فعلاً هو السلاح السري، الفرق كبير جدًا بين العقود التي تفهم bytecode وتلك التي لا تفهمه
إيه، ليه في ناس لسه بتكتب حاجات تستهلك غاز كتير...
كتابة Solidity ممتعة، لكن بعد الترجمة تظهر مجموعة من الأمور اللي تديك صداع
وهذا هو السبب في أن العمليات منخفضة المستوى في assembly أحيانًا يمكن أن توفر الكثير من المال
شاهد النسخة الأصليةرد0
SchrödingersNode
· منذ 6 س
يبدو أن الجمع البسيط يتحول بعد الترجمة إلى هذه المجموعة من التعليمات البرمجية... يجب أن أذكر نفسي دائمًا بعدم الافتراض بشكل تلقائي
شاهد النسخة الأصليةرد0
BearMarketBarber
· منذ 6 س
صراحة، المطورين الذين لا يفهمون bytecode في Solidity هم فقط يدفعون ضريبة الذكاء
شاهد النسخة الأصليةرد0
RetiredMiner
· منذ 6 س
يا إلهي، كتابة a+b كانت أكثر تعقيدًا مما توقعت، لا عجب أن رسوم الغاز مؤلمة جدًا
شاهد النسخة الأصليةرد0
AirdropSkeptic
· منذ 6 س
بالضبط، نظرة على سطر الكود البسيط هذا تكشف أن كل شيء يتم تشغيله بواسطة أوامر التشغيل، لا عجب أن رسوم الغاز مرتفعة جدًا...
إليك كيف يعمل عملية Solidity الأساسية من الداخل. خذ تعبيرًا بسيطًا مثل uint c = a + b — يبدو بسيطًا عند كتابته، لكن المترجم يترجمه إلى شيء مختلف تمامًا على مستوى رمز البايت.
بمجرد الترجمة، تحصل على رموز تشغيل تبدو تقريبًا هكذا:
PUSH1 a
PUSH1 b
ADD
هذه هي لغة الـ EVM تتحدث. يتم تنفيذ كل أمر واحد تلو الآخر. يعالج العميل كل رمز تشغيل بشكل متسلسل، يدفع القيم على المكدس، ينفذ العمليات، ويتجه إلى الأمر التالي. لا اختصارات، لا سحر — فقط سلسلة حتمية من الخطوات التي تحول كودك عالي المستوى إلى عمليات قابلة للتنفيذ على الآلة.
لهذا السبب تعتبر تحسينات الغاز مهمة جدًا في تطوير البلوكشين. كل رمز تشغيل له تكلفة، وفهم ما يتم توليده من رمز البايت من Solidity الخاص بك هو الفرق بين العقود الذكية الفعالة والمهدرة.