Фондация Sui публикува подробен анализ, който разкрива как една промяна в кода доведе до поредица от неочаквани последствия.

Обобщение

  • Прекъсванията са свързани с актуализацията v1.72.
  • Първите две са причинени от проблем в механизма за начисляване на такси.
  • Временното решение на първия проблем създава условия за второ прекъсване.
  • Третият срив е свързан с начина, по който мрежата съхранява информация.

Една актуализация отключи поредица от проблеми

Според Фондация Sui всичко започва с версия 1.72 на Sui, която въвежда нова функционалност, наречена Address Balances. Тя позволява на потребителите да съхраняват средства и да плащат такси по по-различен начин, без да разчитат на обичайния механизъм за управление на монети.

На теория това е трябвало да улесни работата на мрежата. На практика обаче новата функция се е сблъскала с вече съществуваща логика за начисляване на такси по начин, който не е бил забелязан по време на тестовете.

Бъгът с таксите, който предизвика първите 2 спирания

Проблемът възниква в ситуация, при която две трансакции едновременно се опитват да използват средства от един и същи адрес, а наличният баланс не е достатъчен и за двете.

В такива случаи мрежата автоматично анулира едната трансакция. Това е нормалното поведение на системата. Грешката се появява след това.

Въпреки че трансакцията вече е била отменена поради недостатъчно средства, процесът по начисляване на таксите все пак е продължавал да се опитва да изтегли средства от същия баланс по време на операция, наречена gas smashing.

Gas smashing е механизъм, който събира множество малки количества от една и съща криптовалута в едно цяло, за да може трансакцията да се извърши по-лесно и ефективно. За потребителя това става автоматично и помага да не се налага ръчно да управлява отделните наличности в портфейла си.

Вместо очаквания нулев баланс системата е получавала отрицателна стойност, което е довело до срив при валидаторите. Така започва първото прекъсване на мрежата в четвъртък сутринта. Възстановяването отнема около шест часа и половина, след като достатъчен брой валидатори инсталират спешна актуализация.

Проблемът е, че актуализацията не е била окончателното решение.

Екипът е бил наясно, че при определени обстоятелства съществува малка вероятност същият проблем да се появи отново. Рискът е бил приет, защото основната цел е била мрежата да бъде върната онлайн възможно най-бързо.

На следващата сутрин точно този малко вероятен сценарий се случва. Мрежата отново спира работа, а второто прекъсване продължава около три часа и половина.

Третият срив е напълно различен

До петък сутринта разработчиците вече са подготвили по-надеждно решение на проблема с начисляването на таксите.

Валидаторите рестартират системата, за да инсталират актуализацията, а мрежата отново започва да работи нормално. Именно рестартирането обаче създава условията за третия срив.

Sui използва система за разпределено генериране на ключове в началото на всяка нова епоха. Този механизъм създава случайните стойности, необходими за определени видове трансакции. За да функционира правилно, е необходимо минимално ниво на участие от страна на валидаторите.

Докато валидаторите са рестартирали за инсталиране на корекцията, броят на активните участници временно е паднал под необходимия праг и механизмът за генериране на случайни стойности автоматично се е изключил. Това поведение е било напълно нормално.

Истинският проблем идва след това.

Информацията, че системата е била изключена, никога не е била записана. Когато валидаторите отново стартират, те не знаят, че механизмът за случайност е деактивиран и продължават да очакват той да работи.

В резултат трансакциите, които зависят от тази функционалност, започват да се редят на опашка, а в края на всяка епоха системата трябва да обработи опашката, преди да приключи цикъла. Тъй като това не се случва, процесът блокира напълно.

Третото прекъсване продължава близо шест часа.

Какво беше променено след инцидента

Постоянната корекция решава както проблема с начисляването на таксите, така и грешката при записването на състоянието на механизма за генериране на случайни стойности.

Разработчиците добавят и нов механизъм, който позволява на валидаторите координирано да приключват блокирала епоха при подобни ситуации.

Според фондацията по време на всички прекъсвания не е имало риск за средствата на потребителите и нито една вече потвърдена трансакция не е била коригирана.

Екипът твърди още, че AI инструменти с достъп до логове на валидаторите и производствени данни са помогнали значително за по-бързото откриване на причините за проблемите.

След инцидента организацията е определила три основни области, които се нуждаят от допълнителни подобрения: устойчивостта на процесите в края на епохите, качеството на кода, свързан с начисляването на таксите, и механизмите за ограничаване на повреди, така че една грешка да не може да доведе до спиране на цялата мрежа.

Как реагира цената на SUI

Въпреки че общото време на прекъсванията е около 16 часа за два дни, отражението върху цената продължава значително по-дълго, макар, че днешното представяне най-вероятно е повлияно от спада на Биткойн под $73,000 и макро фактори.

Само на 28 май SUI загуби 7.27% от стойността си, а натискът от продавачите продължи и през следващите дни, като към момента на писане на статията се търгува около $0.876.

цената на SUI

Техническата картина също се влошава. Цената се намира едновременно под 0.786 нивото на Фибоначи при $0.927 и под 100-дневната проста пълзяща средна (SMA) при $0.965. Освен това е пробита и възходяща тренд линия, която служеше като подкрепа още от дъната през март.

Следващото важно ниво на графиката се намира при 1.0 нивото на Фибоначи около $0.795 – зона, която SUI не е посещавал от началото на февруари. Междувременно 50 SMA и 100 SMA вече се намират над цената и ще действат като съпротива при евентуално възстановяване.

цената на SUI

RSI е на 34.51 и постепенно се доближава до нивата, наблюдавани при февруарските дъна. Това може да помогне за забавяне на натиска от продавачите, въпреки че засега пазарът остава под влияние на събитията около прекъсванията на мрежата и напрежението около Иран и САЩ.


Информацията, публикувана в TradeNews, има единствено информационен характер и не представлява финансов, инвестиционен, правен или какъвто и да е друг професионален съвет. Пазарите на акции, криптовалути, форекс и дигитални активи са силно волатилни и миналото представяне не е гаранция за бъдещи резултати. Читателите следва самостоятелно да правят собствено проучване и, при необходимост, да се консултират с лицензирани финансови или други професионални консултанти. TradeNews не носи отговорност за каквито и да е загуби или щети, произтичащи от използването на публикуваната информация.