# Sei v2 — перший розпаралелений блокчейн EVM

By [a100](https://paragraph.com/@a100) · 2024-02-11

---

_Додаткову технічну довідку з більш детальним описом можна знайти тут, на_ [_форумі розробників Sei_](http://an%20additional%20technical%20note%20exploring%20further%20detail%20can%20be%20found%20here%20on%20the%20sei%20developer%20forum/)_._

У цій публікації Sei Labs представляє та пропонує оновлення до Sei: v2 — першого розпаралеленого EVM.

Sei v2 використовує перевірені переваги Sei і робить їх доступними для глобальної бази розробників EVM. Це дозволяє Sei отримати найкраще від Solana та Ethereum — гіпер-оптимізований рівень виконання, який отримує вигоду від інструментарію та обміну думками навколо EVM.

**Нетехнічний підсумок**
------------------------

Sei працює в бета-версії мережі з серпня 2023 року, і за цей час він розширив межі того, що раніше вважалося можливим зробити з глобально розподіленим набором вузлів:

*   Sei постійно фіналізує блоки зі швидкістю 390 мс, що робить його найшвидшим ланцюжком в світі
    
*   У Sei постійно спостерігається активність понад 45 TPS, що робить його другою мережею з найбільшою кількістю успішних транзакцій в секунду в даний час. \[1\]
    

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

Наразі Sei дозволяє використовувати смарт-контракти Cosmwasm, написані на Rust. Оскільки Sei продовжує привертати все більше уваги розробників, найбільшим запитом від розробників була додаткова гнучкість у середовищах виконання, які підтримує Sei. Зокрема, для багатьох розробників важливою є підтримка EVM.

Як результат, ми пропонуємо Sei V2: Перше велике оновлення Sei, яке стане першим повністю розпаралелеленим EVM. В результаті цього оновлення Sei отримає наступну функціональність:

*   Зворотна сумісність смарт-контрактів EVM — дозволяє розробникам розгортати перевірені смарт-контракти з EVM-сумісних блокчейнів без внесення змін до коду
    
*   Повторне використання знайомих і широко використовуваних додатків і інструментів, таких як Metamask
    
*   Оптимістичне розпаралелювання — дозволяє ланцюжку підтримувати розпаралелювання, не вимагаючи від розробників визначення будь-яких залежностей
    
*   SeiDB — вдосконалення рівня зберігання для запобігання роздуття стану, підвищення продуктивності читання/запису стану та спрощення синхронізації стану для нових вузлів
    
*   Інтероперабельність з існуючим ланцюжком, що забезпечує безперешкодну сумісність між EVM та будь-якими іншими середовищами виконання, що підтримуються на Sei.
    

З точки зору продуктивності, Sei V2 запропонує 28 300 пакетних транзакцій в секунду пропускної здатності, при цьому час блокування становить 390 мс, а завершення — 390 мс. Це дозволяє Sei підтримувати набагато більше користувачів і набагато більше інтерактивних можливостей, ніж існуючі блокчейни, пропонуючи при цьому набагато нижчу вартість транзакції.

Основне оновлення Sei вже майже завершено. Після завершення аудиту це оновлення буде випущено в публічну тестову мережу в першому кварталі 2024 року, а в основну мережу буде розгорнуто десь в першому півріччі 2024 року.

**Як це працює**
----------------

Sei складається з різних програмних компонентів, які працюють один з одним для підтримки блокчейну. Деякі з цих компонентів прив’язані до рівня консенсусу, а інші — до рівня виконання.

Sei V2 змінить спосіб роботи рівня виконання для підтримки оптимістичного розпаралелювання і оптимізованого зберігання стану. Крім того, він також створить новий компонент для підтримки смарт-контрактів EVM. Ці смарт-контракти EVM отримають вигоду від усіх змін, внесених в консенсус і розпаралелювання, а також зможуть взаємодіяти з існуючими смарт-контрактами Cosmwasm.

![](https://storage.googleapis.com/papyrus_images/ab8c3f93b8dd3b4c57ac8d435eb67e8d63d4580b64ca887918d65ccbbdca36be.png)

**Зворотна сумісність**
-----------------------

Замість того, щоб вимагати від розробників повністю переписувати свої смарт-контракти для розгортання на Sei, Sei V2 побудований з урахуванням зворотної сумісності. Це означає, що всі основні контракти, які існують на Ethereum, можуть бути легко перенесені на Sei без будь-яких змін в коді \[2\].

З технічної точки зору, як частина двійкового файлу ланцюжка Sei, вузли Sei будуть автоматично імпортувати [Geth](https://github.com/ethereum/go-ethereum?ref=blog.sei.io), реалізацію віртуальної машини Ethereum на Go. Geth буде використовуватися для обробки транзакцій ethereum, а будь-які результуючі оновлення (оновлення стану або виклики контрактів, не пов’язаних з EVM) будуть виконуватися за допомогою спеціального інтерфейсу, який Sei створив для EVM.

![](https://storage.googleapis.com/papyrus_images/145e6aefc13ac36a29846c64e19a8336653d11873625b148a3f9a99b17365b07.png)

Такий підхід забезпечує повну сумісність байткодів, що дозволяє легко обробляти в Sei все, що може працювати з Geth. Крім того, оскільки інтерфейс RPC в Sei буде ідентичний EVM, існуючі інструменти з Ethereum можна легко використовувати повторно. Наприклад, користувачі можуть використовувати Metamask, просто переключивши RPC, до якого вони підключені, а розробники можуть використовувати такі інструменти, як Foundry, Remix і Hardhat.

**Оптимістичне розпаралелювання**
---------------------------------

Наразі Sei вимагає від розробників смарт-контрактів за бажанням визначати стан, який використовують смарт-контракти. Цей необов’язковий підхід, на жаль, призводить до більшого непорозуміння між розробниками.

Sei V2 усуне необхідність для розробників самостійно визначати доступ до станів. Замість цього ланцюжок буде оптимально виконувати всі транзакції паралельно. При виникненні конфліктів (транзакції торкаються одного і того ж стану) ланцюжок буде відстежувати, до яких частин сховища торкається кожна транзакція. Транзакції, що торкаються різних частин сховища, будуть повторно запущені паралельно, а транзакції, що торкаються одного і того ж стану, будуть повторно запущені послідовно. Це рекурсивно продовжуватиметься до тих пір, поки не залишиться більше неврахованих конфліктів. Оскільки транзакції впорядковані в блоці, це детермінований процес, який полегшить роботу розробника, зберігаючи при цьому розпаралелювання на рівні ланцюжка.

![](https://storage.googleapis.com/papyrus_images/9054815fb473d495758d01bdfb64aa011ecf849f1ff6cace7550e0bc305d9504.png)

Оптимістичне розпаралелювання буде застосовано до всіх транзакцій, які виконуються на Sei, включаючи власні транзакції Sei, транзакції Cosmwasm та EVM. Детальніше про технічну реалізацію можна дізнатися [тут](https://forum.sei.io/t/optimistic-concurrency-control/28?ref=blog.sei.io).

**SeiDB**
---------

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

Sei змінив архітектуру інтерфейсу сховища, щоб оптимізувати його для різних сценаріїв використання. Sei зробила це, розбивши єдине дерево IAVL на 2 компоненти — зберігання стану та фіксація стану ([мотивація](https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-065-store-v2.md?ref=blog.sei.io)). Рівень зберігання стану забезпечує прямий доступ до необроблених пар ключ-значення з низькою затримкою, що допоможе RPC-вузлам краще обслуговувати запити. Зберігання історичних даних у вигляді необроблених пар ключ-значення усуває накладні витрати на надлишкові метадані і допомагає зменшити використання диска на порядки. Сховище станів також використовує журнал попереднього запису, щоб допомогти з відновленням у випадку збою. Рівень фіксації стану використовує високооптимізоване IAVL-дерево в пам’яті, яке відповідає за фіксацію даних, що допомагає валідаторам досягати консенсусу ще швидше, оскільки обсяг доступу до диска зменшується.

На додаток до цієї зміни, було проведено ретельне тестування різних провідних баз даних, і Sei V2 буде використовувати PebbleDB замість GoLevelDB, що призведе до значного покращення продуктивності читання/запису при багатопотоковому доступі.

![](https://storage.googleapis.com/papyrus_images/bdecf62a806e9dec1f3cd9513c90e896ddd4666bdc99157b51004e9ea643dd66.png)

Детальніше про технічну реалізацію можна прочитати [тут](https://forum.sei.io/t/seidb-improving-long-term-storage/22?ref=blog.sei.io).

**Інтероперабельність**
-----------------------

Оскільки Sei є інтегрованим ланцюжком, всі транзакції, що надходять до різних компонентів Sei (Cosmwasm, EVM, банк, стейкінг), можуть взаємодіяти один з одним. Хоча ці транзакції служать різним цілям, вони в кінцевому підсумку мають багато спільних рис, таких як газ, відправник і тіло транзакції. Коли ланцюжок отримує ці транзакції, вони обробляються як нативні транзакції Sei і пересилаються у відповідні секції сховища (наприклад, транзакції CosmWasm відправляються в модуль wasm і виконуються). Це призводить до більш безперешкодної роботи розробників — EVM-розробники можуть легко отримати доступ до нативних токенів та інших функцій ланцюжка, таких як стейкінг.

![](https://storage.googleapis.com/papyrus_images/a1e25f192661d257eabd5e4f9340ebc4e8a4114415a3e73c5b549b76d21659ce.png)

**Метрики продуктивності**
--------------------------

На момент написання статті код SeiDB та оптимістичного розпаралелювання було завершено. Реалізація EVM все ще знаходиться в процесі розробки і має бути завершена протягом наступних кількох місяців. В результаті Sei V2 буде готовий до запуску тестової мережі на початку 2024 року.

Початкові показники продуктивності SeiDB та оптимістичне розпаралелювання вказують на наступну продуктивність:

![](https://storage.googleapis.com/papyrus_images/cf6c4c6ff577364e8b520ffb09bae3da92359e31bfbd9a3dc55ca676de0b247b.png)

Ці тести були проведені на двадцяти вузлах кластеру, який був рівномірно розподілений між Ohio, California, Frankfurt та Ireland. Кожен вузол був AWS 8xlarge з 32 ядрами та 64 ГБ оперативної пам’яті.

**Висновок**
------------

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

Додатки, які зараз побудовані на будь-якому ланцюжку EVM, зможуть розгортатися на Sei для підтримки набагато більшої кількості користувачів і набагато більш “web-2” інтерактивного досвіду, ніж на існуючих блокчейнах.

Крім того, вони можуть запропонувати набагато нижчі витрати на транзакцію, вищу пропускну здатність і не страждати від компромісів централізації, складності або накладних витрат, пов’язаних з управлінням розгортанням Ethereum L2.

Таким чином, Sei знову робить EVM простим.

У найближчі тижні буде піднято пропозицію щодо управління, яку буде обговорено і проголосовано.

_Додаткову технічну довідку з більш детальною інформацією можна знайти тут, на_ [_форумі розробників Sei_](https://forum.sei.io/t/evm-integration/37?ref=blog.sei.io) _— ми вітаємо внески, питання і думки._

**Виноски**

\[1\] Ця цифра відображає активність, а не максимальний поріг транзакцій, які може обробляти Sei.

\[2\] Найбільша різниця між Ethereum L1 і Sei V2 полягає в способі зберігання стану — Ethereum використовує дерево Patricia Merkle, в той час як Sei використовує дерево IAVL, тому все, що вимагає доказу стану, потрібно буде переписати.

Оригінал статті — [https://blog.sei.io/sei-v2-the-first-parallelized-evm/](https://blog.sei.io/sei-v2-the-first-parallelized-evm/)

Переклав Aleksander100 (дискорд).

---

*Originally published on [a100](https://paragraph.com/@a100/sei-v2-evm)*
