В основі високопродуктивного блокчейну лежить його здатність швидко й безпечно обробляти численні транзакції. Однак, коли транзакції в Sui включають запис до того самого спільного об’єкта, вони повинні виконуватися послідовно. Це може призвести до збільшення часу контрольної точки, що може знизити ефективність синхронізації стану.
Першою метою контролю перевантаження спільного об’єкта є підвищення ефективності виконання контрольних точок. Контролюючи кількість транзакцій, що торкаються перевантаженого або гарячого спільного об’єкта в кожній контрольній точці, система гарантує, що час обробки залишається послідовним, запобігаючи затримкам.
Цей механізм також сприяє чесності транзакцій, гарантуючи, що транзакції з вищими зборами за газ мають пріоритет при включенні контрольних точок. Користувачі очікують, що більш дорогі транзакції оброблятимуться швидше.
Вирішуючи попередні обмеження Суї
Sui раніше керував перевантаженням спільних об’єктів через свій диспетчер транзакцій. Ця система відстежує загальну кількість транзакцій, які очікують на виконання, очікуючи, поки потрібні об’єкти стануть доступними. Якщо незавершені транзакції перевищують порогове значення, менеджер транзакцій припиняє приймати нові запити на підпис або виконання транзакцій.
Попередній механізм, хоч і був ефективним у певних сценаріях, не був ефективним у кількох сферах. Наприклад, це часто призводило до часткових відхилень транзакцій і блокування об’єктів через неузгодженість між валідаторами. Він не точно оцінив час виконання для послідовностей залежних транзакцій, що призвело до неефективності та потенційної перевантаженості обробки. Нарешті, коли об’єкт перевантажувався, попереднє рішення відхиляло всі вхідні транзакції, доки не було виконано поточні транзакції, що означало, що не було можливості визначити пріоритет включення за допомогою платежів за газ.
Більш детальний погляд на контроль заторів
Новий дизайн Consensus Handler представляє більш нюансований підхід до керування залежностями виконання між гарячими спільними об’єктами. Це включає дві нові функції, додані до логіки валідатора:
Можливість відкладати транзакції: обробник консенсусу тепер має можливість відкладати транзакції до майбутніх консенсусних комітів, ефективніше керуючи залежностями виконання в контрольних точках.
Скасування активної транзакції: валідатори тепер можуть активно скасовувати транзакції, які були надмірно відкладені. Коли транзакцію скасовується, вона все ще обробляється, але з командою механізму виконання негайно зупинитися. Отримавши цю інструкцію, механізм виконання звільняє всі заблоковані ним об’єкти та швидко надсилає клієнту повідомлення про помилку скасування, не завершуючи транзакцію.
Обробник консенсусу сортує транзакції та керує ними. На цій діаграмі використовуються кольорові кола для позначення транзакцій з різними обсягами газу.
Коли обробник консенсусу отримує консенсусну фіксацію, він спочатку об’єднує транзакції у фіксації з будь-якими раніше відкладеними, сортуючи їх за ціною газу. Потім він перевіряє кожну транзакцію одну за одною, створюючи для кожного об’єкта графік залежностей виконання, який окреслює найважливіші кроки, необхідні для виконання контрольної точки. Цей процес гарантує, що транзакції обробляються ефективно та в порядку їх вартості.
Щоб додати транзакцію до графіка залежностей, обробник оцінює всі спільні об’єкти, залучені до транзакції. Він визначає об’єкт із найдовшою чергою для початку виконання транзакції, вирівнюючи черги всіх залучених об’єктів до цієї максимальної довжини. Потім вартість транзакції додається до черги кожного об’єкта, оновлюючи порядок виконання.
Графік залежностей надає оцінку затримки виконання для кожного об’єкта на основі найдовшої черги, яка також вказує загальну затримку для консенсусної фіксації. Для кожного консенсусного коміту існує максимальне обмеження для довжини черги. Якщо транзакція перевищує цей ліміт, вона відкладається до майбутнього коміту. Якщо відкладення неодноразово перевищує певний поріг, транзакція скасовується та видаляється з обробки. Зазвичай це відбувається, коли транзакція спрямована на об’єкт із високим попитом, але пропонується занадто низька ціна на газ, щоб бути конкурентоспроможною.
Нова конструкція підвищує ефективність шляхом моніторингу залежностей виконання та обмеження транзакцій, які включають дуже затребувані спільні об’єкти в межах кожного консенсусного коміту, захищаючи таким чином виконання контрольної точки. Важливо те, що ці обмеження не впливають на транзакції, які не включають ці об’єкти високого попиту.
Вирішення попередніх завдань
Як згадувалося, попередня система мала проблеми з відстеженням черги транзакцій для кожного об’єкта, що призводило до неефективності. Механізм контролю перевантажень спільних об’єктів не тільки вирішує ці проблеми, але й вносить значні вдосконалення для оптимізації процесу. Новий підхід забезпечує однакове прийняття рішень усіма валідаторами щодо виконання, відкладення чи скасування транзакції. Ця зміна ефективно усуває проблеми, пов’язані із заблокованими об’єктами, і дозволяє швидко звільнити об’єкти, збережені транзакціями нижчого пріоритету.
Механізм контролю перевантажень також підвищує точність, відстежуючи повний графік залежностей транзакцій у кожному консенсусному коміті. Це означає, що він ретельно відзначає послідовність і залежності транзакцій, забезпечуючи набагато більш чітке уявлення про фактичний час, який потрібен для виконання контрольних точок. Таким чином, він усуває складності та неефективність, на які раніше не звертали уваги.
Крім того, відкладаючи транзакції та об’єднуючи їх із новими в наступні консенсусні зобов’язання, новий метод підтримує місцеві ринки комісії. Таке налаштування сприяє транзакціям із вищими цінами на газ, гарантуючи, що вони мають кращі шанси на обробку в періоди напруженої роботи. Користувачі отримують можливість платити за включення, що може бути особливо потужним для діяльності DeFi.
Нарешті, новий підхід спрямований на досягнення кращої продуктивності в робочому навантаженні гарячого спільного об’єкта до того, як станеться будь-яке погіршення виконання контрольної точки. Це покращення є результатом послідовного та колективного прийняття рішень валідаторами, що призводить до більш ефективної обробки транзакцій і збільшення загальної пропускної здатності мережі. Така уніфікованість гарантує, що система може обробляти більше транзакцій до того, як виникнуть проблеми з продуктивністю.
Суї розчищає шлях
Реалізація контролю перевантаження спільних об’єктів — це більше, ніж технічне оновлення, це стратегічне вдосконалення, яке значно покращує масштабованість і ефективність Sui. Завдяки цій основі користувачі та програми на Sui тепер можуть користуватися більшою ефективністю та надійністю транзакцій. Спрощений механізм контролю заторів забезпечує плацдарм для розгортання більш складних і чутливих додатків, що ще більше розширює можливості екосистеми.