Прорив в паралелізації EVM: багатопоточне виконання підвищує здатність обробки транзакцій

robot
Генерація анотацій у процесі

Шлях паралелізації EVM: від серійного до багатопотокового виконання

Відомо, що EVM є основним виконавчим механізмом Ethereum, відповідальним за виконання смарт-контрактів. Щоб забезпечити отримання однакових результатів виконання смарт-контрактів на різних вузлах, EVM надає єдине віртуальне середовище, подібне до віртуальної машини Java (JVM).

Розумний контракт, коли він розгортається на блокчейні, спочатку компілюється в байт-код EVM. EVM під час виконання контракту послідовно читає цей байт-код, кожна інструкція має відповідну вартість Gas. EVM відстежує споживання Gas під час виконання кожної інструкції, а кількість споживання залежить від складності операції.

На прикладі Reddio розглянемо шлях оптимізації паралельного EVM

Традиційний EVM обробляє транзакції в послідовному режимі, всі транзакції чергуються в єдиній черзі для виконання в порядку. Цей дизайн простий у обслуговуванні, але з ростом кількості користувачів та підвищенням вимог до TPS, продуктивність послідовного виконання все більше стає вузьким місцем, особливо це стає очевидним у рішеннях другого рівня.

Розглядаючи Reddio, пояснити шлях оптимізації паралельного EVM

Окрім EVM, ще одним ключовим компонентом виконання транзакцій в Ethereum є stateDB, який використовується для управління станом рахунків та зберігання даних. EVM кожного разу при виконанні транзакції оновлює дані в stateDB, ці зміни врешті-решт відображаються в глобальному дереві станів.

У режимі послідовного виконання процес обробки транзакцій, в якому EVM та stateDB співпрацюють, виглядає наступним чином:

  1. Транзакції в блокові обробляються по черзі.
  2. Кожна транзакція використовує незалежний EVM екземпляр, але спільно використовує одну й ту ж stateDB
  3. Під час виконання EVM безперервно взаємодіє з stateDB, читаючи та записуючи дані.
  4. Після завершення всіх угод зміни в stateDB будуть надіслані до глобального стану дерева.

На прикладі Reddio пояснюється шлях оптимізації паралельного EVM

Основною проблемою цього послідовного режиму є те, що складні транзакції смарт-контрактів блокують інші транзакції, що заважає повному використанню апаратних ресурсів.

Щоб вирішити цю проблему, деякі проекти почали досліджувати рішення для паралельної оптимізації EVM. Як приклад, візьмемо один проект Layer 2, його основна ідея полягає в тому, щоб виділити кожному потоку тимчасову базу даних стану (pending-stateDB):

  1. Паралельне виконання різних транзакцій з використанням багатопоточності
  2. Кожен потік використовує незалежний pending-stateDB для запису змін стану
  3. Після завершення всіх транзакцій зміни з pending-stateDB будуть синхронізовані з глобальним stateDB.

На прикладі Reddio, висвітлюється шлях оптимізації паралельного EVM

Цей план містить спеціальну обробку для операцій читання та запису:

  • Операції читання спочатку перевіряють pending-stateDB, якщо немає даних, то читають глобальний stateDB
  • Операції запису тимчасово зберігаються в pending-stateDB, не змінюючи безпосередньо глобальний stateDB

На прикладі Reddio, пояснення шляху оптимізації паралельного EVM

Щоб уникнути конфліктів стану, це рішення впроваджує механізм виявлення конфліктів:

  • Моніторинг наявності перетворення між наборами читання та запису різних транзакцій
  • Позначте відповідні транзакції, які потрібно виконати повторно, коли виявлено конфлікт.

Використовуючи Reddio як приклад, описуємо шлях оптимізації паралельного EVM

Нарешті, об'єднайте кілька змін pending-stateDB в глобальний stateDB, щоб згенерувати новий корінь стану.

На прикладі Reddio, описується шлях оптимізації паралельного EVM

Ця паралельна оптимізаційна схема може підвищити TPS у випадках з низьким конфліктом на 3-5 разів. У випадках з високим конфліктом теоретично можливе підвищення до 60 разів.

На прикладі Reddio, описуємо шлях оптимізації паралельного EVM

В цілому, паралелізація EVM є важливим напрямком для підвищення продуктивності Ethereum та його Layer 2. За допомогою технологій, таких як багатопотокове паралельне виконання та тимчасові бібліотеки стану, можна значно підвищити пропускну здатність обробки транзакцій при забезпеченні узгодженості. У майбутньому також можна буде покращити продуктивність EVM шляхом подальшої оптимізації ефективності зберігання та вдосконалення стратегій обробки конфліктів.

На прикладі Reddio пояснюється шлях оптимізації паралельного EVM

На прикладі Reddio, пояснення оптимізації паралельного EVM

На прикладі Reddio розкривається шлях оптимізації паралельного EVM

ETH-1.61%
Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 5
  • Поділіться
Прокоментувати
0/400
FlatTaxvip
· 07-24 20:11
60 разів? Бик не платить податки
Переглянути оригіналвідповісти на0
FastLeavervip
· 07-22 02:02
Гарно, що можна збільшити TPS у 60 разів.
Переглянути оригіналвідповісти на0
NftDeepBreathervip
· 07-22 00:27
потім BTC повертається до влади
Переглянути оригіналвідповісти на0
CounterIndicatorvip
· 07-22 00:11
бичачий це вершина, падіння це дно
Переглянути оригіналвідповісти на0
SerumDegenvip
· 07-22 00:10
просто ще один копіум, щоб пампити eth, чесно кажучи... спочатку покажи мені реальні цифри tps
Переглянути оригіналвідповісти на0
  • Закріпити