Визначення

Sealevel — це паралельний рушій виконання смарт-контрактів у блокчейні Solana. На відміну від послідовних моделей (наприклад, EVM), Sealevel обробляє транзакції одночасно, якщо вони не звертаються до одних і тих самих облікових записів. Назва символізує рівень «морської поверхні»: усі транзакції виконуються на одному рівні паралельно, поки не перетинаються за даними.

Як працює

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

Цей підхід реалізований на рівні вузла (validator) і не вимагає від розробника жодних додаткових дій у коді програми. Розробник просто вказує, які облікові записи потрібні для виклику, а Sealevel сам вирішує, як їх розпаралелити.

Приклад

Уявіть дві транзакції в одному слоті: перша переказує токени з гаманця А на гаманець Б, друга — з гаманця В на гаманець Г. Оскільки жоден обліковий запис не збігається, Sealevel виконає обидві транзакції паралельно. Якщо ж друга транзакція також намагатиметься записати в гаманець А, Sealevel послідовно обробить їх, щоб уникнути конфлікту стану.

Типова помилка

Поширене хибне уявлення: «Sealevel автоматично робить будь-яку програму швидшою». Насправді паралелізм залежить від того, наскільки транзакції ізольовані за обліковими записами. Якщо більшість користувачів постійно звертаються до одного спільного облікового запису (наприклад, глобального лідерборду з частими оновленнями), ефективність Sealevel знижується до послідовної обробки. Проєктування архітектури даних із мінімальними «гарячими точками» — це завдання розробника, а не рушія.

Пов'язані матеріали

Внутрішні переходи

  • Anchor — фреймворк для розробки програм на Solana, який компілюється до байт-коду, що виконується саме в Sealevel.
  • Runtime — ширше середовище виконання вузла Solana, до складу якого входить Sealevel.

Додаткові ресурси

  • Офіційна документація Solana: розділ про архітектуру виконання та паралельну обробку транзакцій.
  • Специфікація BPF (Berkeley Packet Filter) — середовище, у якому Sealevel запускає скомпільовані програми на Rust.

Джерела