
- روز جمعه تمام فعالیتهای شبکهی آزمایشی نسخهی دوم اتریوم(ETH 2.0) به طور ناگهانی متوقف شد و دیگر هیچ بلاک جدیدی ایجاد نشد. پس از بررسیهای صورت گرفته توسعهدهندگان متوجه شدند که یک مشکل نرمافزار در رابطه با همگامسازی تاریخ و زمان در کلاینت پریسم(Prysm) که در حال حاضر بیشترین کاربران شبکهی آزمایشی را به خود اختصاص داده است، باعث بروز این مشکل شده است. در حالیست که سایر کلاینتهای موجود فعالیتهای خود را بدون هرگونه مشکلی ادامه دادهاند.
خرابی شبکه
گزارشات منتشر شده در رابطه با شبکهی آزمایشی نسخهی دوم اتریوم(ETH 2.0) حاکی از آن است که این شبکه روز جمعه با مشکلات نرمافزاری روبرو شده و اکنون قابل استفاده نیست؛ همچنین گفته میشود که این مشکل بحرانی باعث شده تا مراحل پایانی تست و بررسی نیز با تاخیر مواجه شوند.
گفته میشود که یک اشکال نرمافزاری مربوط به زمانبندی شبکه باعث خرابی کلاینت آزمایشی پریسم(Prysm) شده است. این کلاینت در حال حاضر توسط اکثریب قریب به اتفاق تاییدکنندگان شبکهی مورد استفاده قرار گرفته و خرابی آن باعث شده تا فعالیتهای شبکه نیز متوقف شود.
به نظر میرسد که پریسم تنها کلاینت موجود بوده که اطلاعات کاملی در رابطه با چگونگی استفاده از شبکه در اختیار کاربران قرار داده است، بنابراین اغلب کاربران توصیههای مربوط به استفاده از کلاینتهای مختلف به دلیل نحوهی عملکرد اسلشینگ(slashing) را نادیده گرفتهاند و به سمت استفاده از پریسم هجوم آوردهاند.
چه چیز باعث بروز این مشکل شد
حال به نظر میرسد که تمام کاربران کلاینت پریسم دچار مشکل شدهاند، زیرا یکی از هماهنگکنندگان زمان و تاریخ شبکه دچار مشکل شده و زمانبندی شبکه را به چهار ساعت جلوتر برده است. این مشکل زمانبندی باعث بروز خطاء ذیل شده است:
ظاهراً این خطاء نرمافزاری باعث شده هنگامی که گرهها برای همگامسازی زمان به یک سرور NTP متصل شوند، مقادیر اشتباهی را دریافت کنند. در حال حاضر گرههای شبکهی آزمایشی ETH 2.0 از شش سرور NTP برای این کار استفاده میکنند. با این حال، به نظر میرسد که مشکلات پیش آمده به همینجا ختم نشده است، زیرا تمام سرورها مقادیر اشتباه ارائه کردهاند.

طبق گزارشاتی که در رابطه با روند تست و بررسی مشکلات پیش آمده منتشر شده است «تمام سرورهای زمانبندی کلادفایر(Cloudflare Roughtime) اطلاعات اشتباه ارائه میکنند، و گرههای کلاینت پریسم هم نتوانستهاند از این وضعیت به حالت عادی بازگردند».
صحبتهای یکی از توسعهدهندگان
آقای رائول جردن(Raul Jordan) یکی از توسعهدهندگان نسخهی دوم شبکهی اتریوم در رابطه با این موضوع توضیح داد که میزان مشارکت فعلی ظاهراً صحیح نیست، زیرا «تقریباً هیچکس با سر زنجیره(Chain Head) هماهنگ نشده است، بنابراین تا زمانی که شما یک گرهی هماهنگ شده با سر زنجیره نداشته باشید، ما نمیتوانیم مشارکت قابل اعتماد داشته باشیم. حتی مطمئن نیستم که مشارکت کمتر از صفر درصد وجود دارد یا خیر».

نیشانت داس(Nishant Das) یکی دیگر از توسعهدهندگان کلاینت پریسم برای شبکهی ETH 2.0 توضیح داده است که برخی از گرههای کلاینت پریسم اکنون بروز هستند، اما تعداد افرادی که قصد دارند به صورت همزمان همگامسازی شوند بسیار زیاد است، بنابراین گرههایی که سعی میکنند به شبکه متصل شوند با خطاء مواجه میشوند؛ به عبارتی سیستم توانایی پاسخگویی به تمام درخواستهای موجود را ندارد.
رائول جردن در ادامه توضیح داد که «زمان برای شبکهی اتریوم بسیار مهم است. شبکه نمیتواند بدون هماهنگسازی زمان به درستی کار کند. ما برای تنطیم ساعت محلی شما از سیستم زمان کلادفایر استفاده میکنیم».
سیستم Roughtime یک عامل اصلی
با این حال، سیستم Roughtime شرکت کلادفایر که برای تنظیم ساعت مورد استفاده قرار گرفته است، روز گذشته بیش از چهار ساعت خاموش بوده و منجر به آشوب در شبکه شده است. تنها راهحل موجود این بوده است که نباید ساعت سیستم کاربران به صورت اجباری بر اساس سیستم شرکت کلادفایر تنظیم شود، در این حالت سیستم تنها خطاهای مربوط به زمانبندی اشتباه را ارائه میکند. یکی از راهحلهای موجود برای این مشکل این است که به سمت کلاینت دیگری بروید، هرچند که این مشکل در حال حاضر رفع شده است.
همین اشکال کوچک باعث شده که روز جمعه تمام سیستم از کار افتاده و غیرقابل استفاده شود؛ آخرین بلاک نیز تاریخ روز جمعه را نشان میدهد:

سایر کلاینتهای موجود به درستی عمل میکنند، با این حال آقای جردن اعلام نموده که:
برای رفع این مشکل، ما به طور اتفاقی تمام ویژگیهای مهم عملکرد گرههای پریسم را حذف کردیم، که باعث بدتر شدن اوضاع شد. Raul Jordan
این همان زیبایی شبکههای آزمایشی است، که به واسطهی آنها میتوانید مشکلات احتمالی سیستم را ردیابی و رفع کنید. این موضوع یادآور رویداد Devcon در سال ۲۰۱۶ است که تنها چند ساعت پیش از آغاز این رویداد و در نیمه شب، آقای پیتر زیلاگی(Peter Szilagyi) و سایر توسعهدهندگان اتریوم یک کد دیداس(DDos Code) ایجاد کرده و به شبکه حمله کردند.
براساس این رویداد حدود ۳۰ هزار تاییدکننده و یک میلیون ETH موجود متوجه شدند که چرا نباید از پرمصرفترین و شلوغترین کلاینت استفاده کنند، زیرا شبکهی ETH 2.0 برای استفاده از کلاینتهای کوچک یا مبهم اما مطمئن ساخته شده است.
فقط کاربران ویندوز دچار مشکل شدند
از آنجایی که برخی مشکلات مربوط به سیستمعامل ویندوز به نوعی بر روی شبکهی ETH 2.0 تاثیرگذار هستند، تمام تاییدکنندگانی که از این سیستم عامل استفاده میکردند غیرفعال شدند، درحالی سایرین که از سیستم عاملهای دیگری همچون لینوکس استفاده میکردند، تحت تاثیر این مشکلات قرار نگرفتند.
این درسی بود که تمام کاربران شبکه باید میآموختند. با این حال یک مشکلات دیگری نیز کشف شده است، اینکه اغلب کاربران از آموزشهای موجود به صورت مو به مو پیروی میکنند(همانطور که گفته شد تعداد زیاد کاربران کلاینت پریسم به دلیل وجود فایلهای آموزشی است)، بنابراین نه تنها کلاینتها بلکه آموزشها ارائه شده به کاربران هم باید متنوع باشند.
یکی دیگر از کشفیات مرتبط با این رویداد این بود که شبکه به طور کامل متوقف شده است، درحالیکه تا پیش از این هرگز شاهد توقف شبکهی اتریوم نبودهایم. طی هر رویدادی، حتی هک شدن شبکه در سال ۲۰۱۶، هک دائو(DAO) و یا حتی فورک، باز هم شبکه به کار خود ادامه داده و بلاکهای جدید ایجاد شدهاند؛ درحالیکه رویداد فوق باعث توقف کامل شبکه شد.
مشکلات مربوط به حافظه زمانی آغاز میشود که حدود ۳۰ درصد تاییدکنندگان شبکه غیرفعال شوند، این مشکل پس از افرایش به حدود ۵۰ درصد بسیار بزرگتر شده و بعد از رسیدن به ۷۰ درصد، شبکه به طور کامل متوقف میشود.
با تمام این تفاسیر، به نظر میرسد که سریعترین راهحل این مشکل، حرکت به سمت کلاینتهای دیگر است.
نظر شما در رابطه با این رویداد و توقف کامل فعالیتهای شبکهی آزمایشی ETH 2.0 چیست؟ به نظر شما چه راهکارهایی برای جلوگیری از وقوع چنین مشکلاتی وجود دارد؟ نظرات خود را با تیم کوینیت به اشتراک بگذارید.