Оптимізація паралелізму 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

Переглянути оригінал
Ця сторінка може містити контент третіх осіб, який надається виключно в інформаційних цілях (не в якості запевнень/гарантій) і не повинен розглядатися як схвалення його поглядів компанією Gate, а також як фінансова або професійна консультація. Див. Застереження для отримання детальної інформації.
  • Нагородити
  • 9
  • Поділіться
Прокоментувати
0/400
AlphaBrainvip
· 8год тому
На такому рівні ще й прискорення 60 разів
Переглянути оригіналвідповісти на0
SighingCashiervip
· 22год тому
60 разів? Як щодо підвищення продуктивності, то до місяця?
Переглянути оригіналвідповісти на0
AirdropFatiguevip
· 07-16 10:30
Яка користь від усіх цих метушень, все одно просто лежатиму.
Переглянути оригіналвідповісти на0
¯\_(ツ)_/¯vip
· 07-14 04:40
Користувачам більше не потрібно чекати до кінця світу.
Переглянути оригіналвідповісти на0
ReverseTradingGuruvip
· 07-14 04:38
Нарешті щось справжнє.
Переглянути оригіналвідповісти на0
TxFailedvip
· 07-14 04:34
пса: дізнався про паралельний evm дорогим способом... рип моїх 2.3 ет
Переглянути оригіналвідповісти на0
rugpull_survivorvip
· 07-14 04:33
Чув, що це має бути в 60 разів швидше? Може знизити газ?
Переглянути оригіналвідповісти на0
SilentAlphavip
· 07-14 04:33
60 раз Це ж точно заробити величезні гроші!
Переглянути оригіналвідповісти на0
LiquiditySurfervip
· 07-14 04:19
Мартіні вже досяг дна, нарешті не потрібно чекати газу.
Переглянути оригіналвідповісти на0
Дізнатися більше
  • Закріпити