Оптимізація паралелізму EVM підвищує продуктивність обробки транзакцій Ethereum до 60 разів

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

Оптимізація EVM: підвищення продуктивності обробки транзакцій

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

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

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

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

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

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

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

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

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

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

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

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

Ця схема також оптимізує операції читання та запису: під час читання спочатку перевіряється pending-stateDB, якщо немає, то читається глобальний stateDB; операції запису фіксуються в pending-stateDB, а після завершення виконання об'єднуються з глобальним stateDB.

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

Для вирішення конфліктів статусу схема впровадила механізм виявлення конфліктів. Моніторинг наборів читання та запису різних транзакцій, при виявленні конфлікту відповідні транзакції помічаються як такі, що потребують повторного виконання.

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

Паралельна оптимізація за допомогою багатопоточності суттєво покращила продуктивність EVM, особливо при обробці складних смарт-контрактів. Дослідження показали, що при низькому рівні конфліктів TPS може зрости в 3-5 разів; при високому рівні конфліктів теоретично може досягати 60 разів.

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

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

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

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

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

Переглянути оригінал
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Нагородити
  • 6
  • Поділіться
Прокоментувати
0/400
¯\_(ツ)_/¯vip
· 5год тому
Користувачам більше не потрібно чекати до кінця світу.
Переглянути оригіналвідповісти на0
ReverseTradingGuruvip
· 5год тому
Нарешті щось справжнє.
Переглянути оригіналвідповісти на0
TxFailedvip
· 5год тому
пса: дізнався про паралельний evm дорогим способом... рип моїх 2.3 ет
Переглянути оригіналвідповісти на0
rugpull_survivorvip
· 5год тому
Чув, що це має бути в 60 разів швидше? Може знизити газ?
Переглянути оригіналвідповісти на0
SilentAlphavip
· 5год тому
60 раз Це ж точно заробити величезні гроші!
Переглянути оригіналвідповісти на0
LiquiditySurfervip
· 5год тому
Мартіні вже досяг дна, нарешті не потрібно чекати газу.
Переглянути оригіналвідповісти на0
  • Закріпити