Skip to content

КомиссииSolana

Приоритетные комиссии Solana и вычислительные единицы

Обновлено:

На этой странице

Комиссии в Solana обычно крошечные, но у них есть свои части: фиксированная базовая комиссия, необязательная комиссия за приоритет и иногда рента. В статье объясняется каждая часть и что происходит, когда сеть загружена.

Общее введение в комиссии — в статье газ и комиссии. О самой сети — в статье Solana.

Базовая комиссия

Каждая транзакция Solana платит базовую комиссию 5,000 lamports за каждую подпись. Lamport — это одна миллиардная доля SOL, так что 5,000 lamports — это 0.000005 SOL. У большинства простых транзакций одна подпись, поэтому базовая комиссия равна 5,000 lamports. Транзакция, подписанная двумя кошельками, платит вдвое больше.

Базовая комиссия не зависит ни от отправляемой суммы, ни от загруженности сети. Она остается фиксированной, поэтому Solana обычно очень дешевая.

Вычислительные единицы

Solana измеряет работу в вычислительных единицах (compute units, CU). Они играют ту же роль, что газ в Ethereum. Каждая инструкция в транзакции использует некоторое количество вычислительных единиц. Приблизительные типичные значения:

  • Простой перевод SOL использует несколько сотен CU.
  • Перевод токена SPL, например USDC, использует несколько тысяч CU.
  • Обмен на децентрализованной бирже может использовать сотни тысяч CU.

У каждой транзакции есть лимит вычислительных единиц (compute unit limit) — максимум CU, который она может использовать. По умолчанию транзакция получает стандартный лимит на инструкцию, а максимум для всей транзакции — 1.4 миллиона CU. Транзакция, которая пытается использовать больше своего лимита, завершается неудачей. Кошельки часто сначала симулируют транзакцию, а затем задают лимит чуть выше необходимого.

Комиссия за приоритет

Сверх базовой комиссии можно заплатить комиссию за приоритет (priority fee). Она задается двумя числами:

  • Цена вычислительной единицы (compute unit price) в микро-lamports за вычислительную единицу. Микро-lamport — это одна миллионная доля lamport.
  • Лимит вычислительных единиц, который вы запрашиваете.

комиссия за приоритет = цена вычислительной единицы x лимит вычислительных единиц

Пример: цена вычислительной единицы 1,000 микро-lamports и лимит 200,000 CU дают 1,000 x 200,000 = 200,000,000 микро-lamports, то есть 200 lamports. Общая комиссия тогда равна 5,000 + 200 = 5,200 lamports.

Важная деталь: комиссия за приоритет берется с заданного вами лимита, а не с того, что транзакция реально использовала. Слишком высокий лимит впустую тратит деньги, а слишком низкий приводит к сбою транзакции. Поэтому хороший кошелек тщательно задает лимит.

Почему комиссия за приоритет важна при высокой нагрузке

У каждого блока Solana есть лимит вычислительных единиц, а в отдельные аккаунты в каждый момент может писать только одна транзакция. Когда многие пользователи пытаются использовать одну и ту же популярную программу или один и тот же пул токенов, например во время запуска токена, транзакции конкурируют. Те, у кого комиссия за приоритет выше, с большей вероятностью будут обработаны первыми. Остальные могут задержаться или быть отброшены, и тогда придется повторить попытку.

Если сеть спокойна, комиссия за приоритет часто не нужна. Если сеть загружена, небольшая комиссия за приоритет может быть разницей между быстрым успехом и неудачной попыткой.

Как кошельки ее задают

Большинство кошельков и приложений делают это за вас.

  • Они симулируют транзакцию, чтобы узнать, сколько CU нужно, и задают лимит с небольшим запасом.
  • Они запрашивают у сети недавние комиссии за приоритет, уплаченные за аккаунты, которые использует транзакция.
  • Они предлагают уровни вроде low, medium или high, либо поле «custom» для опытных пользователей.

Некоторые приложения позволяют выбрать максимум, который вы готовы заплатить, чтобы комиссия не разрослась во время наплыва.

Рента и токен-аккаунты

Solana хранит данные в аккаунтах, а чтобы аккаунт продолжал существовать, нужен минимальный баланс SOL, называемый освобождением от ренты (rent exemption). На практике это депозит.

Кошелек хранит каждый токен в отдельном токен-аккаунте (token account). Если кто-то отправляет вам USDC в первый раз, а токен-аккаунта USDC у вас нет, его нужно создать. Создание стоит около 0.002 SOL. Этот депозит не комиссия в обычном смысле: его можно вернуть, если аккаунт закрыть. Но из-за него первый перевод токена на новый кошелек стоит дороже обычной цифры.

Страница газа сообщает об этом в примечании, когда вы смотрите действие Send token для Solana: оценка не включает ренту за новый токен-аккаунт.

Как ChainMonitor читает оценки

Сеть Solana может сообщить, какие комиссии за приоритет платили в недавних слотах. ChainMonitor запрашивает эти комиссии для нескольких очень загруженных аккаунтов (токен USDC, wrapped SOL и популярный пул обмена), потому что комиссии, которые платят в конкуренции за загруженные аккаунты, показывают, что нужно превзойти. Он игнорирует слоты с нулевой комиссией за приоритет и по остальным берет три уровня: низкий, медианный и высокий.

Затем он вычисляет стоимость для каждого действия: 5,000 lamports плюс комиссия за приоритет для типичного числа вычислительных единиц — около 450 для перевода SOL, 6,200 для перевода USDC и 200,000 для обмена. Это значения economy, normal и fast, которые вы видите для Solana на странице газа. Это оценки для типичных транзакций, и ваша собственная транзакция может отличаться. Комиссия переводится в доллары по текущей цене SOL.

На что смотреть на странице транзакции

На странице транзакции Solana видны уплаченная комиссия, потребленные вычислительные единицы и выполненные инструкции. Поля описаны в статье как прочитать транзакцию. Блоки в реальном времени — на странице Solana.

Часто задаваемые вопросы

Сколько стоит транзакция в Solana?

Базовая комиссия — 5,000 lamports (0.000005 SOL) за подпись. Добавьте комиссию за приоритет, если она есть, и ренту, если создается новый токен-аккаунт. Актуальную стоимость в долларах смотрите на странице газа.

Что такое микро-lamport?

Это одна миллионная доля lamport. Цена вычислительной единицы в Solana указывается в микро-lamports за вычислительную единицу.

Нужна ли мне комиссия за приоритет?

Не всегда. Когда сеть спокойна или вы пользуетесь приложением без большой нагрузки, базовой комиссии часто достаточно. В загруженные моменты небольшая комиссия за приоритет помогает транзакции дойти.

Почему моя транзакция в Solana была отброшена?

Частые причины: слишком низкая комиссия за приоритет во время наплыва, слишком низкий лимит вычислительных единиц или устаревший blockhash. Повторная отправка с более высокой комиссией обычно помогает.

Что такое рента в Solana?

Это депозит SOL, который поддерживает существование аккаунта в сети. Для токен-аккаунта он составляет около 0.002 SOL, и его возвращают при закрытии аккаунта.