شبکه اصلی Sui در طول ۲۸ و ۲۹ مه سه بار قطعی جداگانه را تجربه کرد، پس از اینکه انتشار نسخه ۱.۷۲ شبکه، موارد لبهای در منطق شارژ گاز و راهاندازی مجدد اعتبارسنج را آشکار ساخت. این موضوع بر اساس گزارش پس از وقوع بنیاد Sui اعلام شد. بنیاد گفت که مشکلات از آن زمان برطرف شده، فعالیت شبکه از سر گرفته شده و «هیچ وجه کاربری در معرض خطر نبوده است.»
حوادث روز پنجشنبه، ۲۸ مه آغاز شد، زمانی که شبکه اصلی Sui در حدود ساعت ۱۵:۰۰ به وقت تهران متوقف شد و تا حدود ساعت ۲۱:۳۰ به وقت تهران از دسترس خارج ماند. قطعی دوم صبح جمعه رخ داد که از حدود ساعت ۱۳:۳۰ به وقت تهران آغاز و تا حدود ساعت ۱۷:۰۰ به وقت تهران ادامه یافت. توقف سوم بعدازظهر جمعه در حدود ساعت ۲۱:۳۰ به وقت تهران آغاز و در حدود ساعت ۰۳:۲۰ روز بعد به وقت تهران برطرف شد.
به گفته بنیاد، دو قطعی اول ناشی از باگهای کرش مربوط به تعامل بین منطق شارژ گاز و ارتقاء ۱.۷۲ Sui بود که موجودیهای آدرس را معرفی کرد. قطعی سوم جداگانه بود و در طول تغییر دوره زمانی برنامهریزیشده ترایگر شد، پس از اینکه راهاندازی مجدد اعتبارسنجها یک باگ پنهان در نحوه حفظ وضعیت تصادفی را آشکار کرد.
بنیاد Sui اعلام کرد: «در طول قطعیها، هیچ وجه کاربری در معرض خطر نبود و شبکه هیچ تراکنش تأییدشدهای را پس از از سرگیری برنگرداند. در حال حاضر، اعتبارسنجها به طور کامل مشکلات شناختهشده ناشی از باگ شارژ گاز اصلی و باگ وضعیت تصادفی را برطرف کردهاند و فعالیت شبکه از سر گرفته شده است.»
اولین مشکل حول ویژگی جدید موجودی آدرس Sui بود که به کاربران امکان میدهد وجوه را ذخیره کرده و بدون تکیه صرف بر اشیاء کوین، هزینه گاز را بپردازند. تراکنشها در Sui میتوانند گاز را از طریق موجودیهای آدرس، اشیاء کوین، یا ساختار ترکیبی که هر دو را در بر میگیرد، پرداخت کنند.
مورد لبهای در آن مسیر گاز ترکیبی ظاهر شد. زمانی که یک تراکنش تلاش کرد از موجودی آدرسی که نمیتوانست تراکنشهای رقیب را پوشش دهد برداشت کند، زمانبند به درستی آن را با خطای InsufficientFundsForWithdraw لغو کرد. اما بعداً، در طول گاز اسمشینگ — فرآیند ترکیب کوینهای ورودی به یک کوین پرداختکننده گاز — همان رزرو میتوانست مجدداً تلاش کند وجوه را بدهکار کند.
در توضیح بنیاد، کرش مستقیماً در طول گاز اسمشینگ رخ نداد، بلکه در مرحله تسویه حساب اتفاق افتاد، زمانی که دلتاهای موجودی توسط یک تراکنش سیستمی تطبیق داده شدند. یک دلتای منفی اعمالشده به یک موجودی صفر باعث آندرفلو شد.
راهحل فوری از نظر مفهومی ساده بود: از گاز اسمشینگ اجتناب شود زمانی که یک تراکنش با InsufficientFundsForWithdraw لغو میشود. اعتبارسنجها آن راهحل را روز پنجشنبه اتخاذ کردند و شبکه را دوباره آنلاین کردند. اما بنیاد پذیرفت که این پچ یک اقدام موقت بود که برای بازیابی شبکه انتخاب شد در حالی که مهندسان راهحل کاملتری توسعه میدادند.
بنیاد نوشت: «تغییر منطق گاز یک عملیات حساس است. همانطور که در بالا توضیح داده شد، تعاملات پیچیدهای بین موجودیهای آدرس و کوینها وجود دارد. علاوه بر رفع باگها، تغییرات منطق گاز باید تمام رفتارهای قبلی را حفظ کنند یا از گیتینگ نسخه مناسب استفاده کنند.»
آن پچ موقت دارای یک ضعف شناختهشده بود. اگر یک تراکنش دلایل لغو متعددی داشت، خطای دیگری میتوانست شرط InsufficientFundsForWithdraw را پنهان کند. زمانی که این اتفاق صبح جمعه رخ داد، مسیر آندرفلو اصلی هنوز قابل دسترسی بود و باعث توقف دوم شد.
قطعی سوم پس از از سرگیری عملیات عادی شبکه در صبح جمعه رخ داد. در تغییر دوره زمانی برنامهریزیشده بعدی، اعتبارسنجها نتوانستند انتقال را تکمیل کنند، زیرا یک باگ مرتبط با پروتکل تولید کلید توزیعشده Sui، یا DKG، وجود داشت که تصادفی را برای تراکنشهایی که به تصادفی درون زنجیرهای وابستهاند، بوتاسترپ میکند.
در طول چرخه راهاندازی مجدد قبلی، مشارکت به اندازه کافی بالا نبود تا فرآیند DKG دوره زمانی بعدی را پشتیبانی کند، بنابراین تصادفی طبق طراحی غیرفعال شد. مشکل این بود که حکم شکست به دیسک نوشته نشد. با راهاندازی مجدد اعتبارسنجها، آنها بدون به یاد آوردن اینکه DKG شکست خورده، بازگشتند.
بنیاد گفت: «با اینکه اعتبارسنجها دیگر شکست DKG را به یاد نمیآوردند، هیچکدام از دو اتفاق نمیتوانست رخ دهد، صف متوقفشده رشد کرد و منطق پایان دوره زمانی — که باید آن صف را قبل از بسته شدن تخلیه کند — در انتظار DKGای ماند که هرگز نمیآمد.»
راهحل دو بخش داشت: پایدار کردن وضعیت DKG در طول راهاندازیهای مجدد و اضافه کردن مکانیزمی که به اعتبارسنجها اجازه میداد دوره زمانی گیرکرده را در یک نقطه هماهنگشده ببندند. آن مکانیزم یک بار برای بستن دوره زمانی تحت تأثیر استفاده شد، پس از آن شبکه وارد دوره زمانی بعدی شد و تصادفی بازیابی شد.
گزارش پس از وقوع، قطعیها را به عنوان یک درس مهندسی گستردهتر برای Sui قاببندی کرد. بنیاد گفت که انعطافپذیری پایان دوره زمانی نیاز به سرمایهگذاری بیشتری دارد، به ویژه در مورد تخریب برازنده و مکانیزمهای بستن اجباری عملیاتی. همچنین گفت که شارژ گاز شایسته همان سطح از دقت است که Move VM یا اجماع Mysticeti دارد، با توجه به تعامل آن با تسویه حساب، بررسیهای حفاظت و زمانبندی.
در زمان انتشار، SUI به قیمت ۰.۸۷۹۸ دلار معامله میشد.



