معماری گره
آخرین ویرایش: @Coiniran(opens in a new tab), ۶ تیر ۱۴۰۳
یک گره اتریوم از دو کاربر تشکیل شده است: یک کاربر اجرا و یک کاربر اجماع.
زمانی که اتریوم از مکانیسم اثبات کار استفاده میکرد، یک کاربر اجرا برای اجرای یک گره کامل اتریوم کافی بود. اما، از زمان اجرای مکانیسم اثبات سهام، کاربر اجرا میبایست در کنار نرمافزار دیگری به نام کاربر اجماع استفاده شود.
نمودار زیر رابطۀ بین دو کاربر اتریوم را نشان میدهد. هر یک از این دو کاربر به شبکههای همتا به همتای (P2P) مخصوص خود متصل میشوند. دلیل نیاز به شبکههای همتا به همتای جداگانه این است که: کاربرهای اجرا تراکنشها را از طریق شبکۀ همتا به همتای خود شایعه میکنند که آنها را قادر میسازد استخر تراکنشهای محلی خود را مدیریت کنند، در حالی که کاربرهای اجماع، بلوکها را از طریق شبکۀ همتا به همتا شایعه میکنند، که امکان اجماع و رشد زنجیره را فراهم میکند.
برای اینکه این ساختار دوکاربری بتواند کار کند، کاربرهای اجماع باید دستهای از تراکنشها را به کاربر اجرا منتقل کنند. اجرای تراکنشها به صورت محلی اینگونه است که کاربر تایید میکند تراکنشها هیچ یک از قوانین اتریوم را نقض نمیکنند و بهروزرسانی پیشنهادی برای حالت اتریوم صحیح است. به همین ترتیب، هنگامی که گره به عنوان تولیدکنندۀ بلوک برگزیده میشود، کاربر اجماع باید بتواند دستهای از تراکنشها را از Geth درخواست کند تا در بلوک جدید گنجانده شود و آنها را برای بهروزرسانی حالت کل شبکه اجرا کند. این ارتباط بینِ کاربری توسط یک اتصال RPC محلی با استفاده از موتور API(opens in a new tab) اداره میشود.
کاربر اجرا چه میکند؟
کاربر اجرا مسئول رسیدگی به تراکنش، شایعه تراکنش، مدیریت حالت و پشتیبانی از ماشین مجازی اتریوم (EVM) است. ولی مسئولیتی در قبال ساخت بلوک، شایعه بلوک یا مدیریت منطق اجماع ندارد. این موارد، در حیطۀ اختیارات کاربر اجماع است.
کاربر اجرا، پیلودهای اجرا را ایجاد میکند که شامل فهرست تراکنشها، آزمایش حالت بهروزشده و سایر دادههای مربوط به اجرا میشود. کاربرهای اجماع شامل پیلود اجرا در هر بلوک است. کاربر اجرا همچنین مسئول اجرای مجدد تراکنشها در بلوکهای جدید به منظور اطمینان از معتبر بودن آنها است. اجرای تراکنشها بر روی کامپیوتر تعبیهشدۀ کاربر اجرا به نام ماشین مجازی اتریوم (EVM) انجام میشود.
کاربر اجرا همچنین از طریق روشهای RPC یک رابط کاربری برای اتریوم فراهم میکند که کاربران را قادر میسازد از بلاکچین اتریوم درخواست اطلاعات کنند، تراکنشها را ارسال کنند و قراردادهای هوشمند را به شیوهای مؤثر به کار گیرند. معمولا تماسهای RPC توسط کتابخانهای مانند Web3js(opens in a new tab) یا Web3py(opens in a new tab) یا یک رابط کاربری مانند کیف پول مرورگر انجام میشود.
به طور خلاصه، کاربر اجرا عبارت است از:
- یک دروازۀ کاربری به اتریوم
- خانۀ ماشین مجازی اتریوم، استخر تراکنش و حالت اتریوم.
کاربر اجماع چه میکند؟
کاربر اجماع با تمام منطقی سر و کار دارد که یک گره را قادر میسازد با شبکۀ اتریوم همگام بماند. این موارد شامل دریافت بلوکها از همتایان و اجرای یک الگوریتم انتخاب فورک است تا اطمینان حاصل شود گره همواره زنجیرهای با بیشترین انباشت گواه را دنبال میکند (وزندهیشده توسط ترازهای مؤثر اعتبارسنج). مشابه کاربر اجرا، کاربرهای اجماع نیز شبکۀ همتا به همتای خود را دارند که از طریق آن بلوکها و تصدیقها را به اشتراک میگذارند.
کاربر اجماع در تایید یا پیشنهاد بلوکها شرکت نمیکند - این کار توسط یک اعتبارسنج انجام میشود که یک افزونۀ اختیاری برای کاربر اجماع محسوب میشود. یک کاربر اجماع بدون یک اعتبارسنج تنها با سر زنجیره همگام میشود و به گره اجازۀ همگامسازی میدهد. این امر به کاربران امکان میدهد با استفاده از کاربر اجرای خود با اتریوم تراکنش کنند با این اطمینان که در زنجیرۀ صحیح قرار دارند.
اعتبارسنج ها
اپراتورهای گره میتوانند با واریز 32 اتریوم در قرارداد سپرده، یک اعتبارسنج را به کاربر اجماع خود اضافه کنند. کاربر اعتبارسنج با کاربر اجماع همبسته است و میتواند در هر زمان به یک گره اضافه شود. اعتبارسنج، تصدیقها و پیشنهادهای بلوک را مدیریت میکند. آنها یک گره را قادر میسازند تا از طریق جریمه یا اسلشینگ به جمعآوری پاداش بپردازد یا ETH از دست بدهد. اجرای نرمافزار اعتبارسنج همچنین باعث انتخاب یک گره واجد شرایط برای پیشنهاد یک بلوک جدید میشود.
در مورد سهام گذاری بیشتر بخوانید.
مقایسۀ اجزای گره
کاربر اجرا | کاربر اجماع | اعتبارسنج |
---|---|---|
تراکنشهای را از طریق شبکۀ همتا به همتای خود شایعه میکند | از طریق شبکۀ همتا به همتای خود، بلوکها و تصدیقها را شایعه میکند | بلوکها را پیشنهاد میکند |
تراکنشها را اجرا/ بازاجرا میکند | الگوریتم انتخاب فورک را اجرا میکند | پاداشها/جریمهها را میگیرد |
تغییرات حالت ورودی را تایید میکند | سر زنجیره را پیگیری میکند | تصدیقها را میسازد |
تلاشهای حالت و رسیدها را مدیریت میکند | حالت بیکن را مدیریت میکند (شامل اطلاعات اجماع و اجرا) | برای سهام گذاری شدن به 32 اتریوم نیاز دارد |
پیلود اجرا را ایجاد میکند | تصادفی بودن انباشتهشده در RANDAO را ردیابی میکند | قابل اسلش شدن است |
JSON-RPC API را برای تعامل با اتریوم در معرض قرار میدهد | توجیه و نهایی شدن را پیگیری میکند |