مشخصات لایه اجرایی اتریوم | وبلاگ بنیاد اتریوم

tl;dr EELS یک پیاده سازی مرجع لایه اجرا در پایتون است. با mainnet به روز است. این تست ها را پر می کند و تست های موجود را با موفقیت پشت سر می گذارد. نمونه ای از EIP پیاده سازی شده در EELS در زیر وجود دارد. مقدمه پس از بیش از یک سال توسعه،

کد خبر : 501517
تاریخ انتشار : سه شنبه ۷ شهریور ۱۴۰۲ - ۰:۰۰
مشخصات لایه اجرایی اتریوم | وبلاگ بنیاد اتریوم


tl;dr

  • EELS یک پیاده سازی مرجع لایه اجرا در پایتون است.
  • با mainnet به روز است.
  • این تست ها را پر می کند و تست های موجود را با موفقیت پشت سر می گذارد.
  • نمونه ای از EIP پیاده سازی شده در EELS در زیر وجود دارد.

مقدمه

پس از بیش از یک سال توسعه، ما خوشحالیم که به صورت عمومی آن را معرفی می کنیم مشخصات لایه اجرایی اتریوم EELS یک پیاده سازی مرجع پایتون از اجزای اصلی یک کلاینت اجرای اتریوم است که بر خوانایی و وضوح تمرکز دارد. در نظر گرفته شده به عنوان یک جانشین معنوی برای کاغذ زرد که با فورک‌های پس از ادغام برنامه‌نویس‌تر و به‌روزتر است، EELS می‌تواند تست‌های حالت را پر کرده و اجرا کند، شبکه اصلی را دنبال کند.1، و مکانی عالی برای نمونه سازی اولیه EIP های جدید است.

EELS عکس های فوری کاملی از پروتکل در هر فورک ارائه می دهد – از جمله موارد بعدی – که پیگیری آن را بسیار آسان تر از EIP ها (که فقط تغییرات را پیشنهاد می کنند) و مشتریان تولید (که اغلب چندین فورک را در یک مسیر کد یکسان مخلوط می کنند.)

تاریخچه

با شروع سال 2021، به عنوان پروژه ای از تیم ConsenSys’ Quilt و بنیاد اتریوم، eth1.0-spec (همانطور که در آن زمان شناخته شده بود) از ناامیدی محض از رمزگشایی نمادهای مرموز کاغذ زرد الهام گرفته شده است (شکل 1) برای درک رفتار خاص یک دستورالعمل EVM.


شکل 1. رونز محرمانه ای که اساس الگوی بلاک چین را توصیف می کند

ترسیم از موفق مشخصات لایه اجماع، ما شروع به ایجاد یک مشخصات اجرایی مشابه برای لایه اجرا کردیم.

حاضر شود

امروزه EELS به عنوان یک ماده مصرفی است مخزن سنتی پایتون و به عنوان مستندات ارائه شده. اطراف لبه‌ها هنوز کمی خشن است و حاشیه‌نویسی یا توضیحات انگلیسی را برای کارهایی که قطعات مختلف انجام می‌دهند ارائه نمی‌کند، اما با گذشت زمان به دست می‌آیند.

این فقط پایتون است

امیدواریم مقایسه ای کنار هم از کاغذ زرد و کد معادل آن از EELS بتواند نشان دهد که چرا EELS مکمل ارزشمندی برای آن است:

اپکد کمتر از (LT).

شکل 2. کمتر از (آن) دستورالعمل EVM از کاغذ زرد

def less_than(evm: Evm) -> None:
    # STACK
    left = pop(evm.stack)
    right = pop(evm.stack)

    # GAS
    charge_gas(evm, GAS_VERY_LOW)

    # OPERATION
    result = U256(left < right)

    push(evm.stack, result)

    # PROGRAM COUNTER
    evm.pc += 1

شکل 3. کمتر از (آن) دستورالعمل EVM از EELS

در حالی که شکل 2 ممکن است برای دانشگاهیان قابل هضم باشد، شکل 3 بدون شک برای برنامه نویسان طبیعی تر است.

در اینجا یک ویدیو است از طریق افزودن یک دستورالعمل ساده EVM اگر این نوع کار شماست

تست های نوشتاری

تکرار می شود: EELS فقط پایتون معمولی است. می توان آن را مانند هر کتابخانه پایتون دیگری آزمایش کرد! علاوه بر کل اتریوم/تست ها مجموعه، ما همچنین مجموعه ای از pytest تست ها

با کمی کمک از تست های execution-spec-test، هر آزمایشی که برای EELS نوشته شده است را می توان برای مشتریان تولید نیز اعمال کرد!2

نمایش تفاوت ها

داشتن عکس‌های فوری در هر فورک برای یک توسعه‌دهنده قرارداد هوشمند که برای دیدن جزئیات نحوه عملکرد یک دستورالعمل EVM عالی است، اما برای خود توسعه‌دهندگان مشتری چندان مفید نیست. برای آنها، EELS می تواند تفاوت های بین چنگال ها را نشان دهد:

تصویری از تفاوت‌های تابع application_fork بین homestead و فورک DAO

شکل 4. یک تفاوت بین هوم استد و چنگال DAO

یک مثال EIP

EIP-6780 اولین EIP است که دریافت می کند اجرای EELS ارائه شده توسط نویسنده، باله گیوم! بیایید نگاهی بیندازیم.

تصویری از بخش مشخصات EIP-6780

شکل 5. بخش مشخصات EIP-6768

ابتدا الف را معرفی می کنیم قراردادهای ایجاد شده متغیر برای EVM با محدوده سطح تراکنش:

 @dataclass
 class Environment:
     caller: Address
     block_hashes: List[Hash32]
     origin: Address
     coinbase: Address
     number: Uint
     base_fee_per_gas: Uint
     gas_limit: Uint
     gas_price: Uint
     time: U256
     prev_randao: Bytes32
     state: State
     chain_id: U64
+    created_contracts: Set[Address]

دوم، توجه می کنیم که کدام قراردادها در هر معامله ایجاد شده اند:

+    evm.env.created_contracts.add(contract_address)

در نهایت اصلاح می کنیم خود تخریبی بنابراین فقط برای قراردادهای ذکر شده در کار می کند قراردادهای ایجاد شده:

-    # register account for deletion
-    evm.accounts_to_delete.add(originator)
-
+    # Only continue if the contract has been created in the same tx
+    if originator in evm.env.created_contracts:
+
+        # register account for deletion
+        evm.accounts_to_delete.add(originator)
+

آینده

ما می‌خواهیم EELS به روش پیش‌فرض برای تعیین Core EIP‌ها تبدیل شود، اولین جایی که نویسندگان EIP برای نمونه‌سازی اولیه طرح‌های خود می‌روند و بهترین مرجع ممکن برای نحوه عملکرد اتریوم باشد.

اگر علاقه مند به مشارکت یا ساخت نمونه اولیه EIP خود هستید، به ما بپیوندید #مشخصات کانال یا مشکلی را از ما بگیرید مخزن.



لینک منبع : هوشمند نیوز

آموزش مجازی مدیریت عالی حرفه ای کسب و کار Post DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت عالی و حرفه ای کسب و کار DBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
آموزش مجازی مدیریت کسب و کار MBA
+ مدرک معتبر قابل ترجمه رسمی با مهر دادگستری و وزارت امور خارجه
ای کافی شاپ
مدیریت حرفه ای کافی شاپ
خبره
حقوقدان خبره
و حرفه ای
سرآشپز حرفه ای
آموزش مجازی تعمیرات موبایل
آموزش مجازی ICDL مهارت های رایانه کار درجه یک و دو
آموزش مجازی کارشناس معاملات املاک_ مشاور املاک
ارسال نظر شما
مجموع نظرات : 0 در انتظار بررسی : 0 انتشار یافته : ۰
  • نظرات ارسال شده توسط شما، پس از تایید توسط مدیران سایت منتشر خواهد شد.
  • نظراتی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • نظراتی که به غیر از زبان فارسی یا غیر مرتبط با خبر باشد منتشر نخواهد شد.