چرخاندن گرهی اتریوم خودتان
آخرین ویرایش: @sipbikardi(opens in a new tab), ۲ مرداد ۱۴۰۳
اجرای گرهی خودتان مزایای متنوعی برای شما دارد، امکانات جدیدی را در اختیارتان قرار میدهد و به پشتیبانی از اکوسیستم کمک میکند. این صفحه شما را برای چرخاندن گرهی خودتان و ایفای نقش برای اعتبارسنجی تراکنشهای اتریوم راهنمایی میکند.
توجه داشته باشید که پس از ادغام، دو کلاینت برای اجرای یک گره اتریوم مورد نیاز است. یک کلاینت لایه اجرا (EL) و یک سرویس گیرنده لایه اجماع (CL). این صفحه، نحوه نصب، پیکربندی و اتصال این دو کلاینت برای اجرای یک گره اتریوم را نشان می دهد.
پیشنیازها
شما باید بدانید که گرهی اتریوم چیست و چرا ممکن است بخواهید یک کلاینت را اجرا کنید. این موضوع در گرهها و کلاینتها بررسی شده است.
اگر موضوع اجرای یک گره برایتان تازه است یا به دنبال راهی هستید که کمتر فنی باشد، توصیه میکنیم ابتدا به مقدمهی کاربرپسند ما دربارهی اجرای یک گرهی اتریوم نگاهی بیاندازید.
انتخاب یک رویکرد
اولین گام برای چرخاندن گرهی خودتان، انتخاب رویکردتان است. بر اساس الزامات و احتمالات مختلف، شما باید پیاده سازی کلاینت (هم از کلاینتهای اجرا و هم اجماع)، محیط (سخت افزار، سیستم) و پارامترهای تنظیمات کلاینت را انتخاب کنید.
این صفحه شما را از طریق این تصمیمات راهنمایی می کند و به شما کمک می کند تا مناسب ترین راه را برای اجرای نمونه اتریوم خود پیدا کنید.
برای انتخاب از بین پیادهسازیهای کلاینت، همه کلاینتهای اجرا، کلاینتهای اجماع آماده در شبکه اصلی را ببینید و درباره تنوع کلاینت اطلاعات کسب کنید.
با در نظر گرفتن نیازهای کلاینتها، تصمیم بگیرید که آیا نرم افزار را روی سخت افزار خود یا در فضای ابری اجرا کنید.
پس از آمادهسازی محیط، کلاینت های انتخابی را با رابط مناسب برای مبتدیان یا به صورت دستی با استفاده از ترمینال با گزینه های پیشرفته نصب کنید.
هنگامی که گره در حال اجرا و همگام سازی است، شما آماده استفاده از آن هستید، اما مطمئن شوید که مراقب نگهداری آن هستید.
محیط زیست و سختافزار
محلی یا ابری
کلاینتهای اتریوم میتوانند روی رایانههای درجه مصرفکننده کار کنند و به سختافزار خاصی مانند ماشینهای استخراج نیاز ندارند. بنابراین، شما گزینه های مختلفی برای استقرار گره بر اساس نیاز خود دارید. برای سادهسازی، بیایید اجرای یک گره را هم در یک ماشین فیزیکی محلی و هم در یک سرور ابری بررسی کنیم:
- ابر
- ارائهدهندگانْ زمان بهکار (uptime) سرور بالا و آدرسهای آیپی (IP) عمومی ثابت ارائه میدهند
- گرفتن سرور اختصاصی یا مجازی ممکن است راحتتر از ساختن سرور شخصی باشد
- بدهبستان بر سر این است که به یک شخص ثالث - ارائهدهدهی سرور اعتماد کنیم
- به دلیل اندازهی حافظهی لازم برای گرهی کامل، هزینهی اجارهی سرور ممکن است بالا باشد
- سختافزار شخصی
- رویکرد بیاعتمادتر و حاکمیتیتر
- سرمایهگذاری برای یک بار
- امکان خرید ماشینهای پیشپیکربندیشده
- شما باید بهطور فیزیکی دستگاه و شبکه را آماده، نگهداری و احتمالاً عیبیابی کنید
هر دو گزینه مزایای متفاوتی دارند که در بالا خلاصه شده است. اگر به دنبال راهحل ابری هستید، علاوه بر بسیاری از ارائهدهندگان سنتی پردازش ابری، سرویسهایی هم وجود دارند که بر روی بهکارگیری گرهها تمرکز دارند. برای گزینه های بیشتر در مورد گره های میزبان، گره ها را به عنوان یک سرویس بررسی کنید.
سختافزار
با این حال، یک شبکهی غیرمتمرکز و مقاوم در برابر سانسور نباید بر ارائهدهندگان ابری متکی باشد. در عوض، اجرای گره تان بر روی سختافزار محلی خودتان برای اکوسیستم سالم تر است. تخمینها(opens in a new tab) سهم بزرگی از گرههای اجرا شده روی ابر را نشان میدهد که میتواند به یک نقطه شکست تبدیل شود.
کلاینت های اتریوم می توانند بر روی کامپیوتر، لپ تاپ، سرور یا حتی یک کامپیوتر تک برد شما اجرا شوند. در حالی که اجرای کلاینت ها بر روی رایانه شخصی شما امکانپذیر است، داشتن یک ماشین اختصاصی فقط برای گره می تواند عملکرد و امنیت آن را به میزان قابل توجهی افزایش دهد و در عین حال تأثیر آن را بر روی رایانه اصلی شما به حداقل برساند.
استفاده از سخت افزار خودتان می تواند بسیار آسان باشد. بسیاری از گزینه های ساده و همچنین تنظیمات پیشرفته برای افراد فنی بیشتر وجود دارد. بنابراین بیایید به الزامات و ابزارهای اجرای کلاینت های اتریوم بر روی دستگاه شما نگاه کنیم.
الزامات
نیازهای سختافزاری برای هر کلاینت متفاوت است، اما معمولاً آنقدر زیاد نیست، چون گره فقط باید همگام بماند. آن را با استخراج که به قدرت محاسباتی بسیار بیشتری نیاز دارد، اشتباه نگیرید. با این حال، سختافزار قدرتمندتر زمان همگامسازی و عملکرد را بهبود میبخشد.
پیش از نصب هر کلاینتی مطمئن شوید که رایانهی شما منابع لازم را برای اجرای آن دارد. در زیر می توانید الزامات حداقل و توصیه شده را بیابید.
گلوگاه سخت افزار شما بیشتر فضای دیسک است. همگام سازی بلاکچین اتریوم بسیار فشرده ورودی/خروجی است و به فضای زیادی نیاز دارد. بهتر است یک حافظه اس اس دی با صدها گیگابایت فضای خالی حتی پس از همگام سازی داشته باشید.
اندازه پایگاه داده و سرعت همگام سازی اولیه به مشتری انتخابی، پیکربندی و استراتژی همگام سازی بستگی دارد.
همچنین مطمئن شوید که اتصال اینترنت شما دارای محدودیت پهنای باند(opens in a new tab) نباشد. توصیه میشود از یک اتصال نامحدود به اینترنت استفاده کنید، چون حجم پهنای لازم برای همگامسازی اولیه و پخش دادهها در شبکه ممکن است از محدودیت حجمی پهنای باند شما بیشتر باشد.
سیستمعامل
همهی کلاینتها از سیستمعاملهای اصلی یعنی لینوکس، مکاواس و ویندوز پشتیبانی میکنند. این بدان معناست که میتوانید گرهها را با سیستمعاملی (OS) که برای شما مناسبتر است، روی رایانههای رومیزی یا سرورهای معمولی اجرا کنید. مطمئن شوید که سیستمعامل شما بهروز است تا از مشکلات احتمالی و آسیبپذیریهای امنیتی جلوگیری شود.
الزامات حداقلی
- پردازنده با حداقل 2 هسته
- 8 گیگ رم
- 2 ترا SSD
- پهنای باند حداقل 10 مگابیت بر ثانیه
مشخصات پیشنهادی
- پردازندهی سریع با حداقل 4 هسته
- حداقل 16 گیگابایت رم
- SSD سریع بالای 2 ترا
- پهنای باند حداقل 25 مگابیت بر ثانیه
حالت همگامسازی و سرویس گیرندهای که انتخاب میکنید بر فضای مورد نیاز تأثیر میگذارند، اما ما فضای دیسک مورد نیاز برای هر مشتری را در زیر تخمین زدهایم.
کلاینت | اندازه دیسک (همگام سازی فوری) | فضای حافظه (آرشیو کامل) |
---|---|---|
Besu | 800GB+ | 12TB+ |
Erigon | شامل نمیشود | 2.5TB+ |
Geth | 500GB+ | 12TB+ |
Nethermind | 500GB+ | 12TB+ |
Reth | شامل نمیشود | 2.2TB+ |
- توجه: Erigon و Reth همگامسازی فوری را ارائه نمیدهند، اما هرس کامل امکانپذیر است (حدود 2 ترا برای Erigon و حدود 1.2 ترا برای Reth)
برای کلاینتهای اجماع، فضای مورد نیاز به پیادهسازی کلاینت و ویژگیهای فعال (مثلاً جریمهکننده اعتبارسنج) نیز بستگی دارد، اما معمولاً با 200 گیگابایت دیگر مورد نیاز برای دادههای بیکن محاسبه میشود. با تعداد زیادی اعتبارسنج، بار پهنای باند نیز افزایش می یابد. میتوانید جزئیات مربوط به الزامات کلاینت اجماع را در این تحلیل بیابید(opens in a new tab).
راهکارهای عملی
سادهترین گزینه برای اجرای یک گره با سختافزار خود استفاده از جعبه های راهاندازی آسان است. دستگاههای از پیش تنظیم شده توسط فروشندگان سادهترین تجربه را ارائه می دهند: سفارش، اتصال، اجرا. همه چیز از قبل پیکربندی شده است و به طور خودکار با یک راهنمای بصری و داشبورد برای نظارت و کنترل نرمافزار اجرا می شود.
اتریوم روی رایانهی تکبرد
یک راه آسان و ارزان برای اجرای یک گره اتریوم، استفاده از کامپیوتر تک بردی است، حتی با معماری ARM مانند Raspberry Pi. Ethereum on ARM(opens in a new tab) تصاویری با قابلیت اجرا و اجرای چندگانه مشتری را برای رزبری پای و دیگر بردهای ARM فراهم میکند.
دستگاه های کوچک، مقرون به صرفه و کارآمد مانند این ها برای اجرای یک گره در خانه ایده آل هستند، اما عملکرد محدود آنها را در نظر داشته باشید.
چرخاندن گره
راهاندازی واقعی کلاینت را میتوان با راهاندازهای خودکار یا به صورت دستی انجام داد و مستقیماً نرمافزار کلاینت را راهاندازی کرد.
برای کاربران نا آشناتر، رویکرد پیشنهادی استفاده از یک لانچر است، نرمافزاری که شما را در نصب راهنمایی میکند و فرآیند راهاندازی کلاینت را خودکار میکند. با این حال، اگر تجربه استفاده از ترمینال را دارید، مراحل تنظیم دستی باید ساده باشد.
نصب با راهنما
چندین پروژه کاربرپسند قصد بهبود تجربه راهاندازی یک کلاینت را دارند. این لانچرها نصب و پیکربندی خودکار کلاینت را ارائه میکنند و برخی حتی یک رابط گرافیکی برای راهاندازی و نظارت بر کلاینتها ارائه میدهند.
در زیر چند پروژه وجود دارد که می تواند به شما در نصب و کنترل کلاینت ها فقط با چند کلیک کمک کند:
- DappNode(opens in a new tab) - که همراه دستگاه خریداری شده از یک فروشنده ارائه نمی شود. این نرمافزار، راهانداز گره واقعی و مرکز کنترل با ویژگی های بسیار می توانند بر روی سختافزار دلخواه استفاده شوند.
- eth-docker(opens in a new tab) - راهاندازی خودکار با استفاده از داکر با تمرکز بر روی استقرار آسان و ایمن، نیاز به دانش پایه و ترمینال داکر دارد که برای کاربران کمی پیشرفتهتر توصیه میشود.
- Stereum(opens in a new tab) - یک لانچر برای نصب کلاینتها روی سرور راه دور از طریق اتصال SSH با راهنمای راهاندازی رابط کاربری گرافیکی، مرکز کنترل، و بسیاری از ویژگیهای دیگر.
- NiceNode(opens in a new tab) - یک لانچر با تجربه کاربری ساده برای اجرای یک گره در رایانه شما. فقط کلاینتها را انتخاب کنید و آنها را با چند کلیک شروع کنید. همچنان تحت توسعه است.
- Sedge(opens in a new tab) - ابزار تنظیم گره که به طور خودکار یک پیکربندی داکر را با استفاده از ویزارد CLI ایجاد می کند. توسط Nethermind با زبان Go نوشته شده.
راهنماب دستی نصب کلاینت
گزینه دیگر، دانلود، تأیید و پیکربندی نرمافزار کلاینت به صورت دستی است. حتی اگر برخی از کلاینتها یک رابط گرافیکی ارائه دهند، راهاندازی دستی همچنان به مهارت های اولیه با ترمینال نیاز دارد اما تطبیق پذیری بسیار بیشتری را ارائه می دهد.
همانطور که قبلا توضیح داده شد، راهاندازی گره اتریوم خود مستلزم اجرای یک جفت کلاینت اجماع و اجرا است. برخی از کلاینتها ممکن است شامل یک کلاینت سبک از نوع دیگر باشند و بدون نیاز به نرمافزار دیگری همگام شوند. با این حال، تأیید کامل بدون نیاز به شخص ثالث نیاز به هر دو پیادهسازی دارد.
دریافت نرمافزار کلاینت
ابتدا، باید نرمافزار کلاینت اجرا و کلاینت اجماع دلخواه خود را بدست آورید.
شما به سادگی می توانید یک برنامه اجرایی یا بسته نصبی را دانلود کنید که مناسب سیستم عامل و معماری شما باشد. همیشه امضاها و checksumهای بسته های دانلود شده را بررسی کنید. برخی از مشتریان همچنین مخازن یا تصاویر داکر را برای نصب و به روز رسانی آسان تر ارائه می دهند. همه کلاینت ها منبع باز هستند، بنابراین می توانید آنها را از سمت منبع نیز بسازید. این روش پیشرفتهتر است، اما در برخی موارد ممکن است نیاز باشد.
دستورالعملهای نصب هر کلاینت در اسنادی که در فهرست کلاینتهای فوقالذکر پیوند داده شدهاند، ارائه شده است.
در اینجا صفحات انتشار کلاینت ها وجود دارد که می توانید باینری های از پیش ساخته شده آنها یا دستورالعمل های نصب را پیدا کنید:
کلاینتهای اجرا
- Besu(opens in a new tab)
- Erigon(opens in a new tab)
- Geth(opens in a new tab)
- Nethermind(opens in a new tab)
- Reth(opens in a new tab)
همچنین شایان ذکر است که تنوع کلاینتها یک مسئله در لایه اجرا است. توصیه می شود که خوانندگان به اجرای یک نسخه حداقلی از کلاینت اجرا فکر کنند.
کلاینتهای اجماع
- Lighthouse(opens in a new tab)
- Lodestar(opens in a new tab) (یک باینری از پیش ساخته شده ارائه نمی دهد، فقط یک تصویر داکر یا باید از منبع ساخته شود)
- Nimbus(opens in a new tab)
- Prysm(opens in a new tab)
- Teku(opens in a new tab)
تنوع کلاینت برای گره های اجماع که اعتبارسنج را اجرا می کنند بسیار مهم است. اگر اکثر اعتبارسنجها پیادهسازی یک کلاینت واحد را اجرا کنند، امنیت شبکه در خطر است. بنابراین توصیه می شود که یک کلاینت اقلیتی را در نظر بگیرید.
آخرین استفاده از کلاینت شبکه را ببینید(opens in a new tab) و درباره تنوع کلاینت بیشتر بدانید.
تایید نرم افزار
هنگام دانلود نرمافزار از اینترنت، توصیه می شود بینقص بودن آن را بررسی کنید. این مرحله اختیاری است، اما به خصوص در مورد زیرساخت های حیاتی مانند مشتری اتریوم، مهم است که از بردارهای حمله احتمالی آگاه باشید و از آنها اجتناب کنید. اگر یک باینری از پیش ساخته شده دانلود کرده اید، باید به آن اعتماد کنید و خطر این را در نظر بگیرید که مهاجم ممکن است بتواند فایل اجرایی را با یک فایل مخرب تعویض کند.
توسعه دهندگان، باینری های منتشر شده را با کلیدهای PGP خود امضا می کنند تا بتوانید به صورت رمزنگاری تأیید کنید که دقیقاً نرم افزاری را که ایجاد کرده اند اجرا می کنید. شما فقط باید کلیدهای عمومی مورد استفاده توسعه دهندگان را به دست آورید که می توانند در صفحات انتشار کلاینت یا در اسناد یافت شوند. پس از دانلود نسخه کلاینت و امضای آن، می توانید از پیادهسازی PGP استفاده کنید، به عنوان مثال GnuPG(opens in a new tab) تا به راحتی آنها را تأیید کنید. آموزش تأیید نرمافزار منبع باز با استفاده از gpg
در لینوکس(opens in a new tab) یا ویندوز/مک(opens in a new tab) را بررسی کنید.
شکل دیگر تأیید این است که مطمئن شوید هش، اثر انگشت رمزنگاری منحصربهفرد، نرمافزاری که دانلود کردهاید با آنچه توسعهدهندگان ارائه کردهاند مطابقت دارد. این حتی ساده تر از استفاده از PGP است و برخی از کلاینتها فقط این گزینه را ارائه می دهند. فقط تابع هش را روی نرمافزار دانلود شده اجرا کنید و آن را با یکی از صفحه انتشار مقایسه کنید. برای مثال:
1sha256sum teku-22.6.1.tar.gz239b2f8c1f8d4dab0404ce70ea314ff4b3c77e9d27aff9d1e4c1933a5439767dde
نصب کلاینت
پس از نصب، دانلود یا کامپایل نرمافزار کلاینت، آماده اجرای آن هستید. این فقط به این معنی است که باید با پیکربندی مناسب اجرا شود. کلاینتها گزینه های پیکربندی خوبی را ارائه می دهند که میتوانند ویژگی های مختلفی را فعال کنند.
بیایید با گزینه هایی شروع کنیم که می توانند به طور قابل توجهی بر عملکرد کلاینت و استفاده از داده تأثیر بگذارند. حالتهای همگامسازی روشهای مختلف بارگیری و اعتبارسنجی دادههای زنجیرهی بلوکی را نشان میدهند. پیش از آغاز گره، باید تصمیم بگیرید که از کدام شبکه و کدام حالت همگامسازی استفاده نمایید. مهمترین چیزهایی که باید در نظر بگیرید فضای دیسک و زمان همگام سازی مورد نیاز کلاینت است. برای تعیین اینکه کدام حالت همگام سازی پیش فرض است، به اسناد کلاینت توجه کنید. اگر برای شما مناسب نیست، یکی دیگر را بر اساس سطح امنیت، داده های موجود و هزینه انتخاب کنید. به غیر از الگوریتم همگامسازی، میتوانید هرس (pruning) انواع مختلف دادههای قدیمی را نیز تنظیم کنید. هرس امکان حذف دادههای قدیمی را فراهم میکند، بهعنوان مثال حذف گرههای درخت وضعیت که از بلوکهای اخیر غیرقابلدسترسی هستند.
سایر گزینه های پیکربندی اولیه عبارتند از، به عنوان مثال. انتخاب یک شبکه - شبکه اصلی یا شبکههای آزمایشی، فعال کردن نقطه پایانی HTTP برای RPC یا WebSockets و غیره. شما می توانید تمام ویژگی ها و گزینه ها را در اسناد کلاینت بیابید. پیکربندی های مختلف کلاینت را می توان با اجرای کلاینت با پرچم های مربوطه به طور مستقیم در فایل CLI یا پیکربندی تنظیم کرد. هر کلاینت کمی متفاوت است. لطفاً برای جزئیات بیشتر در مورد گزینه های پیکربندی، همیشه به اسناد رسمی یا صفحه راهنمای آن مراجعه کنید.
برای اهداف آزمایشی، ممکن است ترجیح دهید یک کلاینت را در یکی از شبکه های تست نت اجرا کنید. مشخصات کلی شبکههای پشتیبانیشده را مشاهده کنید.
نمونه هایی از اجرای کلاینت های اجرایی با پیکربندی اولیه را می توان در بخش بعدی یافت.
آغاز بهکار کلاینت اجرا
قبل از راهاندازی نرمافزار کلاینت اتریوم، آخرین بررسی را انجام دهید که آیا محیط شما آماده است. برای مثال، مطمئن شوید که:
- فضای دیسک کافی با توجه به شبکه انتخابی و حالت همگام سازی وجود دارد.
- حافظه و پردازنده توسط برنامههای دیگر استفاده نمیشود.
- سیستم عامل به آخرین نسخه آپدیت شده است.
- سیستم زمان و تاریخ صحیح را دارد.
- روتر و فایروال شما اتصالات را در پورتهای شنونده (listening ports) میپذیرند. به طور پیشفرض کلاینتهای اتریوم از یک پورت شنونده (TCP) و یک پورت یابنده (UDP) که هر دو بهطور پیشفرض روی 30303 هستند استفاده میکنند.
کلاینت خود را ابتدا روی شبکهی تست اجرا کنید تا مطمئن شوید که همهچیز بهدرستی کار میکند.
شما باید هرگونه تنظیمات کلاینت که به صورت پیشفرض وجود ندارند را در ابتدا مشخص کنید. میتوانید از پرچمها و فایلهای پیکربندی برای مشخص کردن پیکربندی موردنظر استفاده کنید. مجموعه ای از ویژگی ها و نحو پیکربندی هر کلاینت متفاوت است. برای جزئیات، اسناد کلاینت خود را بررسی کنید.
کلاینتهای اجرا و اجماع از طریق یک نقطه پایانی تأیید شده مشخص شده در Engine API(opens in a new tab) ارتباط برقرار می کنند. برای اتصال به یک کلاینت اجماع، کلاینت اجرا باید یک jwtsecret
(opens in a new tab) در یک مسیر شناخته شده ایجاد کند. به دلایل امنیتی و پایداری، کلاینتها باید روی یک ماشین اجرا شوند و هر دو کلاینت باید این مسیر را بدانند زیرا برای تأیید اعتبار یک اتصال RPC محلی بین آنها استفاده میشود. کلاینت اجرا همچنین باید یک پورت شنونده (listening port) برای APIهای تایید شده تعریف کند.
این نشانه به طور خودکار توسط نرمافزار کلاینت تولید می شود، اما در برخی موارد، ممکن است لازم باشد خودتان آن را انجام دهید. میتوانید آن را با OpenSSL(opens in a new tab)تولید کنید:
1openssl rand -hex 32 > jwtsecret
اجرای یک کلاینت اجرا
این بخش شما را از طریق راهاندازی کلاینت های اجرا راهنمایی می کند. این فقط به عنوان نمونه ای از یک پیکربندی اولیه عمل می کند که کلاینت را با این تنظیمات شروع میکند:
- شبکه ای را برای اتصال به شبکه اصلی در مثال های ما مشخص می کند
- در عوض میتوانید یکی از شبکههای آزمایشی را برای آزمایش اولیه تنظیمات خود انتخاب کنید
- دایرکتوری داده را تعریف می کند، جایی که تمام داده ها از جمله بلاکچین در آن ذخیره می شود
- مطمئن شوید که مسیر را با یک مسیر واقعی جایگزین کنید، به عنوان مثال به درایو خارجی شما اشاره می کند
- رابط ها را برای برقراری ارتباط با کلاینت فعال می کند
- از جمله JSON-RPC و Engine API برای ارتباط با کلاینت اجماع
- مسیر
jwtsecret
را برای API احراز هویت شده تعریف می کند- مطمئن شوید که مسیر مثال را با یک مسیر واقعی جایگزین کنید که برای کلاینتها قابل دسترسی باشد، مثلاً
/tmp/jwtsecret
- مطمئن شوید که مسیر مثال را با یک مسیر واقعی جایگزین کنید که برای کلاینتها قابل دسترسی باشد، مثلاً
لطفاً به خاطر داشته باشید که این فقط یک مثال اولیه است، تمام تنظیمات دیگر به طور پیش فرض تنظیم می شوند. برای اطلاع از مقادیر، تنظیمات و ویژگیهای پیشفرض، به مستندات هر کلاینت توجه کنید. برای ویژگی های بیشتر، به عنوان مثال برای اجرای اعتبارسنج، نظارت و غیره، لطفاً به مستندات کلاینت خاص مراجعه کنید.
توجه داشته باشید که جریمههای معکوس
\
در مثال ها فقط برای اهداف قالب بندی هستند. پرچم های پیکربندی را می توان در یک خط تعریف کرد.
اجرای Besu
این مثال Besu را در شبکه اصلی شروع میکند، دادههای بلاکچین را در قالب پیشفرض در /data/ethereum
ذخیره میکند، JSON-RPC و Engine RPC را برای اتصال کلاینت اجماع فعال میکند. Engine API با نشانه jwtsecret
احراز هویت می شود و فقط تماس از localhost
مجاز است.
1besu --network=mainnet \2 --data-path=/data/ethereum \3 --rpc-http-enabled=true \4 --engine-rpc-enabled=true \5 --engine-host-allowlist="*" \6 --engine-jwt-enabled=true \7 --engine-jwt-secret=/path/to/jwtsecret
Besu همچنین دارای یک گزینه لانچر است که یک سری سوالات را می پرسد و فایل پیکربندی را ایجاد می کند. لانچر تعاملی را با استفاده از موارد زیر اجرا کنید:
1besu --Xlauncher
اسناد Besu(opens in a new tab) حاوی گزینههای اضافی و جزئیات پیکربندی است.
اجرای Erigon
این مثال Erigon را در شبکه اصلی شروع میکند، دادههای بلاکچین را در /data/ethereum
ذخیره میکند، JSON-RPC را فعال میکند،تعیین می کند که چه فضاهای نامی مجاز است و احراز هویت را برای اتصال کلاینت اجماع که توسط مسیر jwtsecret
تعریف می شود، فعال می کند.
1erigon --chain mainnet \2 --datadir /data/ethereum \3 --http --http.api=engine,eth,web3,net \4 --authrpc.jwtsecret=/path/to/jwtsecret
Erigon به طور پیش فرض یک همگام سازی کامل را با 8 گیگابایت هارد دیسک انجام می دهد که منجر به بیش از 2 ترابایت داده آرشیو می شود. مطمئن شوید که datadir
به دیسک با فضای خالی کافی اشاره می کند یا به پرچم --prune
نگاه کنید که می تواند انواع مختلف داده را هرس کند. برای کسب اطلاعات بیشتر، --help
مربوط به Erigon را بررسی کنید.
اجرای Geth
این مثال Geth را در شبکه اصلی شروع میکند، دادههای بلاکچین را در /data/ethereum
ذخیره میکند، JSON-RPC را فعال میکند و مشخص میکند که کدام فضاهای نام مجاز هستند. همچنین احراز هویت را برای اتصال کلاینت اجماع فعال می کند که به مسیر jwtsecret
نیاز دارد و همچنین گزینه ای را که در مثال ما فقط از localhost
مجاز است، تعیین می کند.
1geth --mainnet \2 --datadir "/data/ethereum" \3 --http --authrpc.addr localhost \4 --authrpc.vhosts="localhost" \5 --authrpc.port 85516 --authrpc.jwtsecret=/path/to/jwtsecret
اسناد برای همه گزینههای پیکربندی(opens in a new tab) را بررسی کنید و درباره اجرای Geth با یک کلاینت اجماع(opens in a new tab) بیشتر بدانید.
اجرای Nethermind
Nethermind گزینه های نصب(opens in a new tab) مختلفی را ارائه می دهد. این بسته با باینریهای مختلف، از جمله یک لانچر با راهاندازی هدایتشده ارائه میشود که به شما در ایجاد پیکربندی به صورت تعاملی کمک میکند. از طرف دیگر، Runner را پیدا میکنید که خود فایل اجرایی است و فقط میتوانید آن را با پرچمهای پیکربندی اجرا کنید. JSON-RPC بهصورت پیشفرض فعال است.
1Nethermind.Runner --config mainnet \2 --datadir /data/ethereum \3 --JsonRpc.JwtSecretFile=/path/to/jwtsecret
اسناد Nethermind یک راهنمای کامل(opens in a new tab) در مورد اجرای Nethermind با کلاینت اجماع ارائه می دهد.
یک کلاینت اجرا، توابع اصلی، نقاط پایانی انتخابی خود را آغاز می کند و شروع به جستجوی همتا می کند. پس از یافتن موفق همتایان، کلاینت شروع به همگامسازی میکند. کلاینت اجرا منتظر اتصال از سمت کلاینت اجماع خواهد بود. دادههای کنونی زنجیرهی بلوکی زمانی آماده خواهد بود که کلاینت بهطور موفقیتآمیز با وضعیت فعلی همگامسازی کرده باشد.
اجرای Reth
این مثال با استفاده از موقعیت مکانی داده پیش فرض، Reth را در شبکه اصلی شروع می کند. احراز هویت JSON-RPC و Engine RPC را برای اتصال کلاینت اجماع که توسط مسیر jwtsecret
تعریف شده است، فعال می کند و فقط تماس از localhost
مجاز است.
1reth node \2 --authrpc.jwtsecret /path/to/jwtsecret \3 --authrpc.addr 127.0.0.1 \4 --authrpc.port 8551
برای اطلاعات بیشتر در مورد دایرکتوری های داده پیش فرض داده، به پیکربندی Reth(opens in a new tab) مراجعه کنید. اسناد Reth(opens in a new tab) حاوی گزینههای اضافی و جزئیات پیکربندی است.
آغاز بهکار کلاینت اجماع
کلاینت اجماع باید با پیکربندی پورت مناسب شروع شود تا یک اتصال RPC محلی به کلاینت اجرا برقرار شود. کلاینت های اجماع باید با پورت کلاینت اجرای در معرض، به عنوان آرگومان پیکربندی اجرا شوند.
کلاینت اجماع همچنین به مسیر jwt-secret
کلاینت اجرا نیاز دارد تا بتواند ارتباط RPC بین آنها را تأیید کند. مشابه مثالهای اجرایی بالا، هر کلاینت اجماع یک پرچم پیکربندی دارد که مسیر فایل توکن jwt را به عنوان آرگومان میگیرد. این مسیر باید با مسیر jwtsecret
ارائهشده به کلاینت اجرا مطابقت داشته باشد.
اگر قصد دارید یک اعتبارسنج را اجرا کنید، مطمئن شوید که یک پرچم پیکربندی که آدرس اتریوم گیرنده کارمزد را مشخص میکند، اضافه کنید. اینجاست که پاداشهای اتر برای اعتبارسنج شما جمع میشوند. هر کلاینت اجماع یک گزینه دارد، مثلاً --suggested-fee-recipient=0xabcd1
، که آدرس اتریوم را به عنوان آرگومان می گیرد.
هنگام راهاندازی یک بیکننود در یک شبکه آزمایشی، میتوانید با استفاده از یک نقطه پایانی عمومی برای همگامسازی نقطه چک(opens in a new tab) زمان همگامسازی قابل توجهی صرفهجویی کنید.
اجرای یک کلاینت اجماع
اجرای Lighthouse
قبل از اجرای Lighthouse، در Lighthouse Book(opens in a new tab) درباره نحوه نصب و پیکربندی آن بیشتر بیاموزید.
1lighthouse beacon_node \2 --network mainnet \3 --datadir /data/ethereum \4 --http \5 --execution-endpoint http://127.0.0.1:8551 \6 --execution-jwt /path/to/jwtsecret
اجرای Lodestar
نرمافزار Lodestar را با کامپایل یا دانلود تصویر داکر نصب کنید. در اسناد(opens in a new tab) و جامع تر در راهنمای راه اندازی(opens in a new tab) بیشتر بیاموزید.
1lodestar beacon \2 --rootDir="/data/ethereum" \3 --network=mainnet \4 --eth1.enabled=true \5 --execution.urls="http://127.0.0.1:8551" \6 --jwt-secret="/path/to/jwtsecret"
اجرای Nimbus
Nimbus هم با اجماع و هم با کلاینت های اجرا عرضه می شود. این می تواند بر روی دستگاه های مختلف حتی با قدرت محاسباتی بسیار کم اجرا شود. پس از نصب وابستگی ها و خود Nimbus(opens in a new tab)، می توانید کلاینت اجماع آن را اجرا کنید:
1nimbus_beacon_node \2 --network=mainnet \3 --web3-url=http://127.0.0.1:8551 \4 --rest \5 --jwt-secret="/path/to/jwtsecret"
اجرای Prysm
Prysm همراه با اسکریپت است که امکان نصب خودکار آسان را فراهم می کند. جزئیات را می توان در اسناد Prysm(opens in a new tab) پیدا کرد.
1./prysm.sh beacon-chain \2 --mainnet \3 --datadir /data/ethereum \4 --execution-endpoint=http://localhost:8551 \5 --jwt-secret=/path/to/jwtsecret
اجرای Teku
1teku --network mainnet \2 --data-path "/data/ethereum" \3 --ee-endpoint http://localhost:8551 \4 --ee-jwt-secret-file "/path/to/jwtsecret"
هنگامی که یک کلاینت اجماع برای خواندن قرارداد سپرده و شناسایی اعتبارسنجها به کلاینت اجرا متصل می شود، به سایر همتایان بیکننود نیز متصل می شود و شروع به همگام سازی اسلات های اجماع از زمان پیدایش می کند. هنگامی که Beacon Node به دوره فعلی رسید، Beacon API برای اعتبارسنج شما قابل استفاده می شود. درباره API های Beacon Node(opens in a new tab) بیشتر بیاموزید.
افزودن اعتبارسنجها
یک کلاینت اجماع به عنوان یک Beacon Node برای اعتبارسنجها برای اتصال عمل می کند. هر کلاینت اجماع دارای نرمافزار اعتبارسنج مخصوص به خود است که در مستندات مربوطه به تفصیل شرح داده شده است.
اجرای اعتبارسنج خود اجازهی سهامگذاری انفرادی، موثرترین و بی اعتمادترین روش برای پشتیبانی از شبکه اتریوم را میدهد. بااینحال، نیاز به سپردهگذاری 32 اتر دارد. برای اجرای یک اعتبارسنج بر روی گره خود با مقدار کمتر، ممکن است یک استخر غیرمتمرکز با عملگرهای گره بدون مجوز، مانند Rocket Pool(opens in a new tab) مورد علاقه شما باشد.
سادهترین راه برای شروع کار با تولید کلید سهامگذاری و اعتبارسنج، استفاده از لانچپد سهامگذاری شبکهی تست Holesky(opens in a new tab) است که به شما امکان می دهد تنظیمات خود را با گره های در حال اجرا در Holesky(opens in a new tab) آزمایش کنید. وقتی برای شبکهی اصلی آماده شدید، میتوانید این مراحل را با استفاده از سکوی پرتاب سهامگذاری شبکهی اصلی(opens in a new tab) تکرار کنید.
برای مروری بر گزینه های سهامگذاری به صفحه سهامگذاری نگاه کنید.
استفاده کردن از گره
کلاینتهای اجرا نقاط پایانی RPC API را ارائه میکنند که میتوانید از آنها برای ارسال تراکنشها، تعامل با قراردادهای هوشمند یا استقرار آنها در شبکه اتریوم به روشهای مختلف استفاده کنید:
- فراخوانی دستی آنها با یک پروتکل مناسب (مثلاً با استفاده از
curl
) - ضمیمه کردن کنسول ارائهشده (مثلاً
geth attach
) - پیادهسازی آنها در برنامه های کاربردی با استفاده از کتابخانه های web3، مثلاً web3.py(opens in a new tab)، ethers(opens in a new tab)
کلاینتهای مختلف پیادهسازیهای مختلفی برای نقاط پایانی RPC دارند. اما برای JSON-RPC استانداردی وجود دارد که میتوانید برای هر کلاینتی استفاده نمایید. برای مروری اجمالی، مستندات JSON-RPC را بخوانید. برنامههای کاربردی که نیاز به اطلاعات از شبکهی اتریوم دارند میتوانند از RPC استفاده کنند. به عنوان مثال، کیف پول محبوب متامسک به شما امکان می دهد به نقطه پایانی RPC خود متصل شوید(opens in a new tab) که دارای مزایای امنیتی و حریم خصوصی قوی است.
کلاینتهای اجماع همگی یک API بیکن(opens in a new tab) را در معرض نمایش میگذارند که میتواند با ارسال درخواست با استفاده از ابزارهایی مانند Curl(opens in a new tab) برای بررسی وضعیت کلاینت اجماع یا بارگیری کردن بلوکها و دادههای اجماع استفاده شود. اطلاعات بیشتر در این مورد را میتوان در اسناد مربوط به هر کلاینت اجماع یافت.
دستیابی به RPC
درگاه پیشفرض برای اجرای برنامه JSON-RPC 8545
است اما میتوانید پورتهای نقاط انتهایی محلی را در پیکربندی تغییر دهید. در حالت پیشفرض، رابط RPC فقط در هاست محلی (localhost) رایانهی شما قابل دسترسی است. برای اینکه بتوانید از راه دور به آن دسترسی داشته باشید، میتوانید با تغییر آدرس به 0.0.0.0
آن را در معرض دید عموم قرار دهید. این باعث می شود که از طریق شبکه محلی و آدرس های IP عمومی قابل دسترسی باشد. در بیشتر موارد، باید روی روتر خود باز ارسالی پورت (port forwarding) را هم تنظیم کنید.
با احتیاط به قرار دادن پورت ها در معرض اینترنت نگاه کنید زیرا این کار به هر کسی در اینترنت اجازه می دهد گره شما را کنترل کند. اگر از کلاینت خود بهعنوان کیف پول استفاده میکنید، افراد خرابکار میتوانند به گره شما دسترسی پیدا کنند تا سیستم شما را خراب کنند یا سرمایههای شما را بدزدند.
راهحل این مشکل، جلوگیری از تغییرپذیری روشهای بالقوه خطرناک RPC است. برای مثال، با Geth، میتوانید روشهای اصلاحپذیر را با یک پرچم اعلام کنید: --http.api web3,eth,txpool
.
دسترسی به رابط RPC را می توان از طریق توسعه APIهای لایه لبه یا برنامه های کاربردی وب سرور، مانند Nginx، و اتصال آنها به آدرس محلی و پورت کلاینت خود گسترش داد. استفاده از یک لایه میانی همچنین میتواند به توسعهدهندگان این امکان را بدهد که گواهی را برای اتصالات https
ایمن به رابط RPC تنظیم کنند.
راهاندازی یک وب سرور، یک پروکسی یا Rest API روبه خارج تنها راه برای دسترسی به نقطه پایانی RPC گره شما نیست. یکی دیگر از راههای حفظ حریم خصوصی برای تنظیم یک نقطه پایانی قابل دسترسی عمومی، میزبانی گره در سرویس پیاز Tor(opens in a new tab) خودتان است. بدین ترتیب میتوانید به RPC خارج از شبکهی محلی خود بدون آدرس آیپی (IP) عمومی ثابت یا پورتهای باز شده دسترسی پیدا کنید. با این حال، استفاده از این پیکربندی ممکن است تنها به نقطه پایانی RPC اجازه دهد که از طریق شبکه Tor که توسط همه برنامهها پشتیبانی نمیشود و ممکن است منجر به مشکلات اتصال شود، قابل دسترسی باشد.
برای انجام این کار، باید سرویس onion(opens in a new tab) خود را ایجاد کنید. اسناد(opens in a new tab) راهاندازی سرویس پیاز را برای هاست خود بررسی کنید. می توانید آن را به یک وب سرور با پروکسی به درگاه RPC یا فقط مستقیماً به RPC اشاره کنید.
در نهایت، و یکی از محبوب ترین راه ها برای دسترسی به شبکه های داخلی از طریق اتصال VPN است. بسته به مورد استفاده شما و تعداد کاربرانی که نیاز به دسترسی به گره شما دارند، یک اتصال VPN ایمن ممکن است یک گزینه باشد. OpenVPN(opens in a new tab) یک SSL VPN با امکانات کامل است که برنامه افزودنی شبکه ایمن لایه دوم یا سوم OSI را با استفاده از پروتکل استاندارد صنعتی SSL/TLS پیادهسازی میکند، از روشهای تأیید اعتبار کلاینت انعطافپذیر بر اساس گواهیها، کارتهای هوشمند و/یا نام کاربری پشتیبانی میکند، نام کاربری/رمز را ارائه می دهد و به سیاست های کنترل دسترسی خاص کاربر یا گروه با استفاده از قوانین فایروال اعمال شده در رابط مجازی VPN اجازه کار می دهد.
استفاده از گره
شما باید بهطور مرتب گره خود را کنترل کنید تا مطمئن شوید که به درستی کار میکند. ممکن است نیاز به انجام تعمیرات گاهبهگاه داشته باشید.
آنلاین نگهداشتن گره
نیازی نیست که گره شما همیشه آنلاین باشد، اما باید آن را تا حد امکان آنلاین نگه دارید تا با شبکه همگام شود. برای راه اندازی مجدد می توانید آن را خاموش کنید، اما به خاطر داشته باشید که:
- اگر وضعیت اخیر همچنان روی دیسک نوشته می شود، خاموش شدن می تواند چند دقیقه طول بکشد.
- خاموش شدن اجباری می تواند به دیتابیس آسیب برساند و شما را ملزم به همگام سازی مجدد کل گره کند.
- کلاینت شما با شبکه همگام نمی شود و با راه اندازی مجدد باید مجدداً همگام شود. در حالی که گره می تواند از زمانی که آخرین خاموش شده بود همگام سازی را آغاز کند، بسته به مدت زمانی که آفلاین بوده است، فرآیند ممکن است زمان ببرد.
این موضوع روی گرههای اعتبار سنج لایهی اجماع اعمال نمیشود. آفلاین کردن گرهی شما بر تمام سرویسهای وابسته به آن تأثیر میگذارد. اگر یک گره را برای سهامگذاری اجرا میکنید، باید سعی کنید زمان خاموشی را تا حد امکان پایین آورید.
ساختن سرویسهای کلاینت
ساختن سرویسی را برای اجرای خودکار کلاینتهای خود در هنگام راهاندازی در نظر بگیرید. به عنوان مثال، در سرورهای لینوکس، بهترین رویه ایجاد یک سرویس است، به عنوان مثال با systemd
، که کلاینت را با پیکربندی مناسب، تحت یک کاربر با امتیازات محدود اجرا می کند و به طور خودکار ریستارت می شود.
بهروزرسانی کلاینتها
شما باید نرمافزار کلاینت خود را با آخرین پچهای امنیتی، ویژگیها و EIPها بهروز نگهدارید. بهویژه قبل از فورک سخت، مطمئن شوید که نسخههای کلاینت صحیح را اجرا میکنید.
قبل از بهروزرسانیهای مهم شبکه، EF یک پست را در وبلاگ(opens in a new tab) خود منتشر میکند. میتوانید مشترک این اعلامیهها شوید(opens in a new tab) تا زمانی که گره شما نیاز به بروزرسانی دارد، اعلان را در ایمیل خود دریافت کنید.
بروزرسانی کلاینتها بسیار ساده است. هر کلاینت دستورالعملهای خاصی را در مستندات خود دارد، اما فرآیند معمولاً فقط دانلود آخرین نسخه و راهاندازی مجدد کلاینت با فایل اجرایی جدید است. کلاینت باید از جایی که کارش را متوقف کرد، اما با بهروزرسانیهای اعمال شده، به کار خود ادامه دهد.
هر پیادهسازی کلاینت دارای یک رشته نسخه قابلخواندن توسط انسان است که در پروتکل همتا به همتا استفاده میشود، اما از طریق خط فرمان نیز قابلدسترسی است. این رشته نسخه به کاربران امکان می دهد بررسی کنند که آیا نسخه صحیح را اجرا میکنند یا نه و به جستجوگرهای بلوک و سایر ابزارهای تحلیلی علاقهمند به تعیین کمیت توزیع مشتریان خاص اجازهی دسترسی به شبکه را میدهد. لطفاً جهت کسب اطلاعات بیشتر در مورد رشتههای نسخه به مستندات هر کلاینت مراجعه کنید.
اجرای سرویسهای اضافه
اجرای گره خودتان به شما امکان میدهد از خدماتی استفاده کنید که نیاز به دسترسی مستقیم به RPC کلاینت اتریوم دارند. اینها خدماتی هستند که بر روی اتریوم ساخته شده اند مانند راهکارهای لایه 22، پشتیبان برای کیف پول، کاوشگرهای بلوک، ابزارهای توسعه دهنده و سایر زیرساخت های اتریوم.
نظارت بر گره
برای نظارت صحیح بر گره خود، معیارهای تجمعی را در نظر بگیرید. کلاینتها نقاط پایانی معیارها را ارائه میکنند تا بتوانید دادههای جامعی درباره گره خود دریافت کنید. از ابزارهایی مثل InfluxDB(opens in a new tab) یا Prometheus(opens in a new tab) برای ساخت پایگاه دادههایی استفاده کنید که میتوانید با استفاده از نرمافزارهایی مثل Grafana(opens in a new tab) آنها را تبدیل به بازنمایی بصری و نمودار کنید. تنظیمات زیادی برای استفاده از این نرمافزار و داشبوردهای مختلف Grafana وجود دارد تا بتوانید گره خود و شبکه را کاملاً به شکل بصری بازنمایی کنید. برای مثال، آموزش نظارت بر Geth را بررسی کنید.
بهعنوان بخشی از نظارت خود، مطمئن شوید که عملکرد دستگاه خود را زیر نظر داشته باشید. در طول همگامسازی اولیهی گره شما، ممکن است نرمافزار کلاینت برای پردازنده و رم بسیار سنگین باشد. علاوه بر Grafana میتوانید از ابزارهایی که سیستمعاملتان به شما ارائه میدهد، مثل htop
یا uptime
، برای این کار استفاده کنید.
بیشتر بخوانید
- راهنماهای سهام گذاری اتریوم(opens in a new tab) - Somer Esat، به روز رسانی مکرر
- راهنما | نحوه ایجاد یک اعتبارسنج برای سس اتریوم در شبکه اصلی(opens in a new tab)- CoinCashew مرتباً به روز میشود
- راهنماهای ETHStaker درباره اجرای اعتبارسنج در شبکهی تست(opens in a new tab) – ETHStaker، مرتباً بهروز میشود
- سوالات متداول ادغام برای اپراتورهای نود(opens in a new tab) - جولای 2022
- تحلیل نیازمندیهای سختافزاری برای تبدیل شدن به یک گرهی کامل معتبر اتریوم(opens in a new tab) – آلبرت پالا، 24 سپتامبر 2018
- اجرای گرههای کامل اتریوم: راهنمایی برای افراد کمانگیزه(opens in a new tab) – جاستین لروکس، 7 نوامبر 2019
- اجرای یک گرهی هایپرلجر Besu روی شبکهی اصلی اتریوم: مزایا، نیازمندیها و راهاندازی(opens in a new tab) – فلیپ فراگی، 7 مه 2020
- بهکارگیری کلاینت اتریوم Nethermind با پشتهی نظارت(opens in a new tab) - Nethermind.eth، 8 ژوئیه 2020