اتریوم چگونه کار می‌کند(۳) – سوخت و پرداخت

خانه انجمن ها تالار اتریوم اتریوم چگونه کار می‌کند(۳) – سوخت و پرداخت

  • این موضوع خالی است.
در حال نمایش 1 نوشته (از کل 1)
  • نویسنده
    نوشته‌ها
  • #242
    Mohmmad10
    مدیر

    قسمت دوم


    در این مجموعه به بررسی چگونگی کارکرد اتریوم می‌پردازیم. در قسمت سوم این مجموعه شما با سوخت و پرداخت در ساختار اتریوم آشنا خواهید شد.


    حساب‌ها و حالت

    اتریوم چگونه کار می‌کند؟ – ۳

    سوخت و پرداخت


    یکی از مهم‌ترین مفاهیم اتریوم مفهوم کارمزدهاست. هر محاسبه‌ای که برای اجرای یک تراکنش در شبکه اتریوم انجام می‌شود هزینه‌ای دارد. اینجا هیچ چیز رایگان نیست! این هزینه با سوخت یا گَس (Gas) پرداخت می‌شود.

    • سوخت واحدی است که برای اندازه‌گیری هزینه‌ها و کارمزدهای موردنیاز برای محاسبات خاص استفاده می‌شود.
    • قیمت سوخت (gas price) مقدار اتری است که برای هر واحد سوخت پرداخت می‌کنید و به صورت جی‌وی (GWei) اندازه‌گیری می‌شود. وی کوچکترین واحد اتر است. هر اتر ۱۰۱۸ وی است. یک جی‌وی برابر با یک میلیارد وی است.

    کسی که تراکنش را ارسال می‌کند، باید حد سوخت (gas limit) و قیمت سوخت را برای آن تعیین کند. حاصل‌ضرب این دو مقدار، نشان‌دهنده بیشترین مقدار وی است که فرستنده می‌خواهد برای اجرای این تراکنش بپردازد.

    برای مثال، فرض کنیم فرستنده حد سوخت را ۵۰,۰۰۰ و قیمت سوخت را ۲۰ جی‌وی تعیین می‌کند. این بدان معناست که بیشترین مقدار کارمزدی که فرستنده می‌خواهد برای اجرای این تراکنش بپردازد ۰٫۰۰۱ اتر است.

    ۵۰,۰۰۰ ۲۰ ×  gwei = ۱,۰۰۰,۰۰۰,۰۰۰,۰۰۰,۰۰۰ Wei = ۰٫۰۰۱ Ether


    به یاد داشته باشید که حد سوخت نشان‌دهنده بیشترین مقدار سوختی است که فرستنده می‌خواهد برای اجرای تراکنش خرج کند. اگر این فرد در حسابش به اندازه کافی اتر داشته باشد و این مقدار بیشینه را پوشش دهد، همه چیز خوب پیش خواهد رفت. در انتهای تراکنش، سوخت اضافی استفاده‌نشده به فرستنده بازگردانده می‌شود.

    در شرایطی که فرستنده سوخت موردنیاز برای انجام تراکنش را به اندازه کافی تأمین نکرده باشد، تراکنش با پیغام خطای «اتمام سوخت» مواجه شده و نامعتبر در نظر گرفته می‌شود. در این‌ صورت تراکنش لغو شده و هر تغییری که در حالت اتفاق افتاده است به‌ حالت قبل از ارسال تراکنش برگردانده می‌شود. علاوه‌ بر این، یک سابقه از تراکنش ناموفق ثبت می‌شود که نشان می‌دهد چه تراکنشی و در کجا ناموفق بوده است. از آنجا که ماشین تلاش کرده بود محاسبات را انجام دهد، منطقی است که سوخت مصرف‌شده را دوباره به فرستنده پس نمی‌دهند.

    این سوخت دقیقا کجا می‌رود؟ کل مبلغی که فرستنده برای سوخت مصرف می‌کند، به آدرس «ذی‌نفع» فرستاده می‌شود که به‌ طور معمول آدرس یک ماینر است. زیرا این ماینرها هستند که تلاش می‌کنند محاسبات را انجام دهند و تراکنش‌ها را اعتبارسنجی کنند، از این رو به‌عنوان پاداش کارمزد سوخت را برمی‌دارند.

    به‌ طور معمول، هر چه فرستنده قیمت سوخت بالاتری پرداخت کند ارزشی که ماینر از تراکنش به‌دست می‌آورد بیشتر می‌شود. به‌ همین‌ دلیل احتمال بیشتری دارد که ماینرها این تراکنش را انتخاب کنند. ماینرها می‌توانند به انتخاب خودشان تعدادی از تراکنش‌ها را اعتبارسنجی کنند یا آن‌ها را نادیده بگیرند. همچنین می‌توانند با تبلیغِ کمترین قیمت سوخت برای اجرای تراکنش، افرادی را که نمی‌دانند چه قیمتی را برای سوخت در نظر بگیرند راهنمایی کنند.


    برای فضای ذخیره‌سازی هم هزینه‌هایی وجود دارد


    سوخت پرداختی فقط مختص مراحل محاسباتی نیست و برای میزان مصرفِ فضای ذخیره‌سازی هم باید مبلغی در نظر گرفته شود. کل هزینه برای فضای ذخیره‌سازی، متناسب با حداقل فضای مورد استفاده بوده که مضربی از ۳۲ بایت است.

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


    هدف از این هزینه‌ها و کارمزدها چیست؟


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

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

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


    در قسمت‌های بعدی این مجموعه نیز با ما همراه باشید…


    قسمت چهارم

در حال نمایش 1 نوشته (از کل 1)
  • شما برای پاسخ به این موضوع باید وارد شوید.