قرار است که در اتریوم نسل دوم، استیکینگ (staking) جایگزین استخراج شود. در این حالت، افراد مقداری اتریوم را گرو میگذارند و به این ترتیب در فرآیند اعتبارسنجی و اضافه کردن بلاکهای جدید مشارکت میکنند. در حال حاضر، شبکههایی آزمایشی برای امتحان این ایده اتریوم نسل دوم در حال طراحی هستند و هدف اتریوم نسل دوم نیز این است که استیکینگ را برای همگان مقدور کند. در این نوشتار به توضیحاتی در مورد استفاده از Nethermind برای استیکینگ اتریوم در شبکه آزمایشی Goerli میپردازیم.
برای استفاده از این راهنما، به سیستم عامل لینوکس (Linux) نیاز دارید و باید Curl بر روی این سیستم عامل نصب شده باشد. باید خاطرنشان کنیم که اتریوم نسل دوم در حال توسعه است و اطلاعات مربوط به آن خیلی سریع تغییر میکند. پس تنها به اطلاعات موجود در این مقاله بسنده نکنید و از منابع دیگر نیز برای تایید اظهارات مطرح شده استفاده کنید.
نصب Nethermind جهت استیکینگ اتریوم
برای نصب Nethermind به این لینک بروید و آخرین نسخه را برای پلتفرم خود دانلود کنید. Nethermind را از فایل زیپ بیرون بکشید.
منظور از اولین xx شماره نسخه است. در زمان این نوشتار، ۱.۸.۴۳ جدیدترین است. در نام فایل، این به دنبال یک بررسی ۷ کاراکتری میآید که در اینجا به صورت xxxxxxx ارائه شده است.
به روز نگه داشتن Nethermind
فضای اتریوم نسل دوم خیلی سریع در حال حرکت است و Nethermind نیز در همین راستا خیلی سریع حرکت میکند و تقریبا هر روز نسخه جدید بیرون میدهد که باید به روز باشید و از این نسخههای جدید استفاده کنید.
اگر میخواهید بدانید که از کدام نسخه Nethermind استفاده میکنید، به دایرکتوری (directory) آن بروید و CLI را باز کرده و فرمان زیر را تایپ کنید:
این کار باعث نمایش نسخه بر روی صفحه میشود.
به روز رسانی دقیقا مانند نصب انجام میشود و همان کارهای قبل را باید تکرار کنید. فراموش نکنید که بعد از به روز رسانی، نود خود را راهاندازی مجدد کنید.
همگامسازی Goerli
در داخل دایرکتوری Nethermind، Nethermind را بر روی شبکه آزمایشی Goerli راهاندازی کنید:
اگر میخواهید از Nethermind برای ایجاد یک کیف پول و آدرس بر روی Goerli استفاده کنید، باید از فلاگ (flag) دیگری هم استفاده کنید:
Goerli یک شبکه آزمایشی نسبتا جدید است و Beam Sync بر روی Goerli عملکردی است. این یعنی که در یک راهاندازی آزمایشی Goerli به گونهای همگام میشود که در کمتر از ۱۵ دقیقه با سی پی یو (CPU) یا رم (RAM) قدرتمند فراخوانی میشود و در حدود ۱ ساعت کاملا همگام میشود. دستگاههای کند ممکن است زمان بیشتری برای این کار لازم داشته باشند.
فلاگ JsonRpc.Enabled به صورت true تنظیم میشود تا استفاده از فاستهای Goerli تسهیل شود و واریزی اعتبارسنج ارسال شود. چیز دیگری بر روی پورت (port) شماره ۸۵۴۵ دستگاه شما منتشر نمیشود و این به Nethermind اجازه انتشار بر روی پورت را میدهد. فراموش نکنید که شبکه را در متامسک (MetaMask) به صورت localhost:۸۵۴۵ تنظیم کنید.
تمام شدن فرآیند همگامسازی به صورت پیام به شما اعلام میشود. در پایین یک اسکرین شات از خروجی نود همگام شده را میبینید:
Lighthouse
Lighthouse کلاینت اتریوم نسل دوم در Sigma Prime است. آن به صورت Rust نوشته شده است. برای راهنمای نصب آسان باید به rustup.rs بروید. در نظر داشته باشید که نصب Rust وقتگیر و نیازمند منابع کامپیوتر است.
در مرحله بعدی باید به کلون و ساخت مخزن lighthouse بپردازید. این ساخت کمی وقتگیر است. آخرین باری که من خودم این کار را انجام دادم بیش از نیم ساعت طول کشید.
Lighthouse به صورت پیشفرض روی Witti راهاندازی میشود که یک شبکه آزمایشی چند کلاینتی است. لازم است که مخزن Witti را کلون کنید. پس از هر دایرکتوری که میخواهید آن را کپی کرده و به صورت زیر تایپ نمایید:
اولین مرحله شامل اتصال کلاینت Beacon Node به Goerli و همگامسازی زنجیره است. در زیر چنین فرض شده که Witti به دایرکتوری خانه کلون شده است، در غیر این صورت، جایگزین مسیر صحیح خواهد شد:
توجه داشته باشید که اگر تایپ lighthouse برای شما کار نکند، ممکن است لازم باشد که در عوض از ~/lighthouse/target/release/lighthouse استفاده کنید.
اگر هنوز Nethermind در حال خروج به یک پایانه است، ممکن است با تعدادی درخواست RPC مواجه شوید:
ما از lighthouse برای ایجاد یک کیف پول برای استیکینگ اتریوم استفاده میکنیم. در محل دلخواه خود یک فایل رمز عبور ایجاد کنید و این رمز عبور میتواند به انتخاب خودتان باشد. من این رمز عبور را در اینجا password.txt مینامم. کیف پول را نیز witti مینامم زیرا این کاری است که در witti lighthouse انجام شده است. به طور مشابهی، دایرکتوری خانه به عنوان مقصد فایل تولید شده انتخاب میشود. این توصیه امنیتی نیست و از لحاظ امنیتی نیز خوب نیست. این در واقع کار نوشتن را برای من کمی آسان میکند. امیدوارم که خواندن و استخراج آنچه که نیاز دارید برای شما کمی آسانتر شود.
این باید کیف پول شما را تولید کند. شما باید ۱۲ کلمه یادآور را بر روی صفحه مشاهده کنید. من از آن اسکرین شات نمیگیرم و به شما هم توصیه میکنم که هرگز این کلمات را به اشتراک نگذارید. بعدا ما یک اکانت اعتبارسنج ایجاد میکنیم.
در نهایت، یک خروجی با یک عدد سری طویل موجود خواهد بود.
حال لازم است که برای اعتبارسنج خود واریزی انجام دهیم. با استفاده از متامسک و یا Nethermind CLI میتوان این کار را انجام داد.
اگر بخواهید با استفاده از متامسک این کار را انجام دهید، باید متامسک را به نود خود متصل کنید و انتخاب کنید که بر کدام زنجیره هستید و همچنین localhost:۸۵۴۵ را نیز انتخاب کنید.
لازم است که حداقل ۳۲ عدد GoETH داشته باشید تا بتوانید تبدیل به اعتبارسنج شوید. اگر اکانت تویتر (twitter) یا فیسبوک (facebook) داشته باشید، میتوانید با مراجعه به https://faucet.goerli.mudit.blog و وارد کردن آدرس متامسک خود این مقدار را دریافت کنید.
با استفاده از یک مرورگر شبکه به اسناد lighthouse بروید و بر روی دکمه آپلود (upload) کلیک کنید. فابل lighthouse لازم است به صورت ~/.lighthouse/validators/ox… باشد و یا به عبارت دیگر در یک فولدر مخفی با نام .lighthouse در دایرکتوری خانه باشد. شما باید در جستجوی فایلی با نام eth1-deposit-data.rlp باشید. آپلود این باعث انجام تراکنش در متامسک و ارسال سی و دو GoETH به قرارداد اعتبارسنج در Goerli خواهد شد.
اما اگر بخواهید با استفاده از خط فرمان این کار را انجام دهید، لازم است که نود Goerli را با یک فلاگ اضافی راهاندازی کنید.
از دایرکتوری Nethermind، باید CLI را راهاندازی کنید. تایپ personal.listAccounts باید لیستی از اکانتهای آزمایشی را به شما بدهد. اگر چنین نشد، بقیه امور نیز احتمالا انجام نخواهد شد و من توصیه میکنم که از مسیر متامسک استفاده کنید. اگر انجام شد، یک اکانت جدید ایجاد کنید و رمز عبور را به انتخاب خود جایگزین کنید.
توجه داشته باشید که در این راهاندازی، آدرس جدید به عنوان خروجی عمل میکند که باید وجوه مورد نیاز را با استفاده از فاست ذکر شده در بالا برای استیکینگ اتریوم تامین کنید. لازم است که اکانت را از داخل Nethermind CLI باز کنید:
در زمان این نوشتار، lighthouse به یک نقطه انتهایی IPC برای واریزی از طریق خط فرمان نیاز دارد. به صورت زیر میتوان حدسی علمی در مورد نحوه ایجاد واریزی انجام داد.
در کل این زمان، Beacon Node باید در حال همگامسازی باشد. شما ممکن است همزمان کلایت اعتبارسنج را شروع کنید، اما تا پایان همگامسازی چیزی انجام نخواهد شد. توصیه میکنم که منتظر باشید تا همگامسازی پایان یابد. وقتی که کلاینت کار همگامسازی را به پایان رساند، خروجی به چیزی مانند زیر تغییر پیدا خواهد کرد:
لازم است که کلاینت beacon chain را حتی بعد از همگامسازی نیز در حال اجرا نگه داشت. در یک پایانه جدید، برای تحریک کلاینت اعتبارسنج باید این کار را انجام دهید:
این فلاگها تنها اولین باری که اعتبارسنج را راهاندازی میکنید لازم هستند و اگر بعدا از آن استفاده شود، auto-register میتواند مشکلساز شود. اگر لازم است اعتبارسنج را راهاندازی مجدد کنید، به صورت زیر عمل کنید:
بله، کار به این صورت است. اگر موفق به انجام آن شدهاید که باید به شما تبریک بگوییم. شما اینک در حال راهاندازی Beacon Chain و Validator هستید که دو جبهه پیشگام اتریوم نسل دوم هستند.
برخی نکات دیگر
در زمان این نوشتار، افراد زیادی اعتبارسنجی بر روی Witti را شروع نکردهاند. این یعنی به زودی بعد از شروع اعتبارسنج، شما باید یک خروجی مانند این را ببینید:
گاهی در عوض این خروجی، یا باید بلاک را تصدیق کنید و یا یک بلاک جدید منتشر کنید. انتشار این تصدیق به صورت زیر است:
تصدیق مانند رای دادن به یک بلاک پیشنهادی است. انتشار یک بلاک جدید در واقع پیشنهاد آن بلاک جدید به زنجیره است. در لحظه این نوشتار، برای نود آفلاین مجازات در نظر گرفته شده است. البته آفلاین شدنهای اتفاقی پیش میآید و این مشکلی ایجاد نخواهد کرد.
طبیعی است که گاهی در این فضا گیر کنید و نتوانید امور را به خوبی پیش ببرید. در این حالت حتما سوالات خود را بدون هیچ گونه احساس شرمندگی باید از تیمهای کلاینت بپرسید.
کلاینتهای دیگر
واضح است که lighthouse تنها کلاینت اتریوم نسل دوم نیست. میتوانید با استفاده از هر کلاینت دیگر اتریوم نسل دوم به استفاده از Nethermind برای همگامسازی Goerli بپردازید. در این راهنما، lighthouse به عنوان مثال انتخاب شده بود و چند کلاینت دیگر نیز در ادامه معرفی خواهد شد.
میتوانید چندین کلاینت اتریوم نسل دوم را با همدیگر راهاندازی کنید. مطمئن شوید که کامپیوتر شما منابع لازم برای این کار را دارد. شما برای تمامی این کلاینتها تنها به یک نود Goerli نیاز خواهید داشت.
از جمله کلاینتهای دیگر میتوان به Teku اشاره کرد که به زبان جاوا (Java) نوشته شده است. Lodestar و Prysm نیز از دیگر کلاینتهای موجود هستند که prysm مجموعه نودهای Goerli را راهاندازی کرده و کلاینت Prysm را به صورت پیشفرض به آنها متصل میکند.
شما از کدام کلاینت اتریوم نسل دوم استفاده میکنید؟ نظرات خود را با ما در میان بگذارید.