Визначення

Rent (орендна плата) — це механізм захисту мережі Solana від безконтрольного зростання обсягу збережених даних. Кожен обліковий запис у блокчейні повинен утримувати мінімальний баланс, інакше його дані автоматично видаляються. Сума, яка робить обліковий запис звільненим від оренди (rent-exempt), розраховується залежно від розміру збережених у ньому даних.

Як працює

  • Solana стягує оренду пропорційно до кількості байтів, які обліковий запис займає в стані мережі.
  • Існує два варіанти: періодична сплата за кожну епоху або одноразовий депозит, який повністю звільняє обліковий запис від оренди (rent-exempt).
  • На практиці переважна більшість сучасних програм створюють облікові записи одразу у rent-exempt режимі — користувач вносить депозит один раз, і дані зберігаються безстроково, поки баланс не впаде нижче порогу.
  • Якщо баланс облікового запису стає меншим за мінімально допустимий, мережа видаляє його під час наступного збирання сміття (garbage collection). Залишок SOL повертається на адресу, указану в інструкції закриття, або на власника запису.

Приклад

Ви створюєте обліковий запис розміром 200 байтів для зберігання стану токена. Мережа розраховує мінімальний депозит для rent-exempt — наприклад, 0.0015 SOL. Ви вносите цю суму в тій самій транзакції, що створює запис. Поки на балансі облікового запису є щонайменше 0.0015 SOL, дані зберігаються безстроково й жодних додаткових списань не відбувається. Якщо ви виведете кошти й баланс впаде нижче порогу — запис буде видалено.

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

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

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

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

  • Lamport — найменша одиниця SOL, у якій вимірюється орендна плата та всі комісії в мережі.
  • Blockhash — ідентифікатор блоку, що використовується в транзакціях, зокрема в операціях створення облікових записів із сплатою rent.