Перейти к основному содержимому

Как застейкать

Здесь разобрана практическая сторона стейкинга: как поставить AET за Нейронет, как его перенести, как забрать обратно и какие правила держать в голове. Зачем стейк нужен вообще, объяснено в Обзоре стейкинга.

Стейкинг​

Стейкинг делегирует AET конкретному Нейронету. Токены резервируются на вашем собственном аккаунте, а не сжигаются, и идут в зачёт мощности этого Нейронета всё время, пока остаются застейканными.

  • Минимум одного делегирования - 1 AET, что держит пылевые стейки вне системы. В цепи это 1 000 000 000 planck: считает она в planck, своей наименьшей единице, и в одном AET их миллиард.
  • У каждого Нейронета свой стейк. Стейк, поставленный на один Нейронет, не относится к другому, поэтому поддержка нескольких означает отдельный стейк в каждый.
  • Верхнего предела на сумму делегирования с одного аккаунта нет, как нет и потолка на число поддерживаемых Нейронетов.

Шаги​

  1. Пополните аккаунт, с которого собираетесь стейкать. Стейк резервируется на этом же аккаунте, поэтому вызов отправляет тот холодный ключ, который держит токены.
  2. Выберите Нейронет и запомните его числовой neuronet_id. Несуществующий Нейронет отклоняется сразу.
  3. Отправьте delegate_stake(neuronet_id, amount), вызов с индексом 60 в пальете AetronPoI. Сумма указывается в planck.
  4. Рантайм резервирует сумму, добавляет её к вашей позиции по этому Нейронету и поднимает его общий стейк.

Стейк регистрируется сразу, но в зачёт эмиссии идёт не мгновенно. Делегирование ставит блок активации на эпоху вперёд (7200 блоков, примерно сутки при блоке в 12 секунд). Пока этот блок не прошёл, позиция держится, но ещё не созрела.

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

Перенос стейка между Нейронетами​

Чтобы сменить поддерживаемый Нейронет, выводить и стейкать заново не нужно. move_stake(from_neuronet, to_neuronet, amount), вызов с индексом 62, переделегирует напрямую.

Перенос идёт через тот же конвейер охлаждения, что и обычный вывод. Последовательность такая:

  1. Сумма немедленно покидает исходный Нейронет, поэтому его мощность падает в том же блоке.
  2. Запрос лежит в очереди ожидания весь период охлаждения.
  3. Когда он созревает, сумма зачисляется целевому Нейронету, а не возвращается в ваш свободный баланс. Токены всё это время остаются зарезервированными и через ваш расходный баланс не проходят.
  4. Новая позиция на целевом Нейронете начинает собственное ожидание созревания с того блока, в котором она появилась.

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

Запрос на вывод​

request_unstake(neuronet_id, amount), вызов с индексом 61, начинает вывод. Запросить можно любую сумму вплоть до всей позиции, включая её целиком.

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

Частичный вывод оставляет остаток на месте, но этот остаток омолаживается так же, как при пополнении: ему назначается свежее ожидание созревания, прежде чем он снова начнёт учитываться. Поэтому вывод части позиции стоит вам права на награду и по той части, которую вы оставили.

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

Период охлаждения​

Запросы на вывод созревают через 50 400 блоков, около 7 дней при блоке в 12 секунд. В течение этого окна:

  • Токены остаются зарезервированными на вашем аккаунте. Их нельзя ни потратить, ни перевести.
  • Они не застейканы ни на одном Нейронете, поэтому доли эмиссии не приносят.
  • Запрос нельзя ни отменить, ни изменить, и сумму поменять тоже нельзя.

Охлаждение существует, чтобы стейк не мог заскочить и выскочить ради одного цикла награды, и это делает мощность Нейронета достаточно стабильной, чтобы на неё можно было рассчитывать.

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

Комиссия при выводе​

В рантайме есть параметр комиссии за вывод UnstakeFeePct, установленный в 1 процент. Когда он применяется, комиссия уходит в казну и не сжигается, поэтому токены остаются в обращении.

Комиссия условная, а не постоянная. Она берётся только при активной фрикции вывода, для чего одновременно должны выполняться три условия:

  • Включён флаг UnstakeFrictionEnforce. По умолчанию он выключен.
  • Нейронет, из которого идёт выход, когда-либо действительно получал эмиссию.
  • Это обычный вывод, а не переделегирование через move_stake. Перенос стейка между Нейронетами комиссию не несёт никогда, потому что токены остаются работать в сети.

С выключенным флагом завершённый вывод возвращает всю запрошенную сумму. Тот же флаг управляет и ExtendedUnstakeCooldown - более длинным окном в 216 000 блоков (примерно 30 дней), которое заменяет стандартное охлаждение при полном выходе из Нейронета, получающего эмиссию. И комиссия, и удлинённое окно настроены в рантайме, но по умолчанию неактивны, поэтому сегодня параметры описывают 7 дней охлаждения и возврат без комиссии.

Отдельно от всего этого delegate_stake, request_unstake и move_stake являются обычными транзакциями в цепи, и каждая стоит нормальной комиссии. См. Комиссии транзакций.

Порог активации​

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

Порог гейтит выплату, а не мощность. Мощность считается прямо из стейка по курсу 100 слотов за AET, поэтому у Нейронета с 50 AET за спиной есть 5000 слотов и эмиссия ему начисляется как обычно. Чего он не получает, так это самой выплаты на расчёте: рантайм пропускает распределение и публикует событие о недоборе, а баланс продолжает копиться, пока стейк не перевалит за 100 AET.

О чём стоит помнить​

  • Выбирайте по спросу, а не только по размеру. Загруженный и хорошо работающий Нейронет приносит своим стейкерам больше, чем тихий. См. Награды стейкера.
  • Мощности нужен спрос. Добавление стейка в Нейронет без трафика в основном замораживает токены, не поднимая доход.
  • Планируйте охлаждение. Ваш AET не становится ликвидным в момент решения о выводе, а зарабатывать перестаёт сразу, поэтому период ожидания - мёртвое время с обеих сторон.
  • Пополняйте одним разом. Каждое добавление омолаживает всю позицию на эпоху.
  • Предпочитайте move_stake полному кругу. Переделегирование держит токены зарезервированными и вообще обходит путь с комиссией, даже если фрикцию позже включат.

Общая картина того, почему стейк равен мощности, описана в Обзоре стейкинга.