Визначення
Sealevel — це паралельний рушій виконання смарт-контрактів у блокчейні Solana. На відміну від послідовних моделей (наприклад, EVM), Sealevel обробляє транзакції одночасно, якщо вони не звертаються до одних і тих самих облікових записів. Назва символізує рівень «морської поверхні»: усі транзакції виконуються на одному рівні паралельно, поки не перетинаються за даними.
Як працює
Перед виконанням Sealevel аналізує, до яких облікових записів звертається кожна транзакція: які дані вона читає, а які — змінює. На основі цього формується граф залежностей. Транзакції, що працюють із непересічними наборами облікових записів, запускаються паралельно на різних ядрах процесора. Якщо дві транзакції намагаються записати в один і той самий обліковий запис, одна з них чекає завершення іншої.
Цей підхід реалізований на рівні вузла (validator) і не вимагає від розробника жодних додаткових дій у коді програми. Розробник просто вказує, які облікові записи потрібні для виклику, а Sealevel сам вирішує, як їх розпаралелити.
Приклад
Уявіть дві транзакції в одному слоті: перша переказує токени з гаманця А на гаманець Б, друга — з гаманця В на гаманець Г. Оскільки жоден обліковий запис не збігається, Sealevel виконає обидві транзакції паралельно. Якщо ж друга транзакція також намагатиметься записати в гаманець А, Sealevel послідовно обробить їх, щоб уникнути конфлікту стану.
Типова помилка
Поширене хибне уявлення: «Sealevel автоматично робить будь-яку програму швидшою». Насправді паралелізм залежить від того, наскільки транзакції ізольовані за обліковими записами. Якщо більшість користувачів постійно звертаються до одного спільного облікового запису (наприклад, глобального лідерборду з частими оновленнями), ефективність Sealevel знижується до послідовної обробки. Проєктування архітектури даних із мінімальними «гарячими точками» — це завдання розробника, а не рушія.
Пов'язані матеріали
Внутрішні переходи
- Anchor — фреймворк для розробки програм на Solana, який компілюється до байт-коду, що виконується саме в Sealevel.
- Runtime — ширше середовище виконання вузла Solana, до складу якого входить Sealevel.
Додаткові ресурси
- Офіційна документація Solana: розділ про архітектуру виконання та паралельну обробку транзакцій.
- Специфікація BPF (Berkeley Packet Filter) — середовище, у якому Sealevel запускає скомпільовані програми на Rust.