Сколько на самом деле держится арендованная энергия TRON
Спросите, сколько держится арендованная энергия TRON, — и ответы не могут быть верны все разом: она уходит в момент подтверждения транзакции; она возвращается через час; она стоит на кошельке трое суток; она держится, пока продавец не решит забрать её обратно. Каждый из них — верный ответ на свой вопрос, потому что над арендованной делегацией идут трое отдельных часов, а имеют в виду обычно только одни. Вот они по отдельности. Короткий ответ, если нужен только он: столько, сколько делегация стоит на адресе, — для наших заказов 300 секунд, из которых на отправку отведены все, кроме последних трёх; у большинства продавцов — час. Но срок остаётся обещанием, пока за ним нет блокировки, а на вопрос по-настоящему отвечает именно блокировка.
Трое часов
Первые — коммерческие: срок, который вам продал продавец, то есть цифра в прайс-листе и ничего больше. Вторые — в сети: блокировка, единственное в протоколе, что мешает продавцу забрать делегацию раньше времени. Третьи принадлежат самому ресурсу: потраченная энергия восстанавливается в течение следующих суток, чей бы счёт это ни был. Они независимы — продавец может продать час и не заблокировать ничего, — и большинство противоречивых ответов на эту тему — это пересказ одних из трёх так, будто это все трое сразу.
Срок, который продал продавец
Срок — это продуктовое решение, и разброс широк. Из семнадцати прайс-листов, прочитанных нашим наблюдением 7 сентября 2026 года, шестнадцать называли часовую аренду и один — трое суток. Цены за этими сроками, каждая со штампом момента, когда она была снята, — на странице рынка; сам срок аренды за ними — это уже собственное описание товара у продавца. Наш — 300 секунд, и он короткий намеренно: делегация ничего не стоит ни при создании, ни при завершении, поэтому купить час стоящей энергии, чтобы потратить пять её секунд, — это купить склад.
Для заказа это означает одно поле. Когда энергия подтверждена на адресе-отправителе, в ответе приходит send_before: момент, когда закрывается окно доставки, за три секунды до конца аренды. Эти три секунды — арифметика, а не защита: они лишь делают так, чтобы окно кончалось раньше аренды, и больше ничего. Сеть считает аренду от блока, в котором прошла делегация, а мы — от момента, когда увидели эту делегацию подтверждённой, и между этими двумя моментами лежит один опрос. Поэтому перевод, отправленный в последние секунды окна, может дойти до сети, когда энергия уже ушла домой, и сжечь на этом TRX. Отправляйте по сигналу, а не по дедлайну: планировать надо по send_before, а не по сроку и не по настенным часам (как кошелёк отправляет на арендованной энергии проходит остаток этого сценария).
Блокировка и то, чего срок не делает
Срок в прайс-листе — это обещание; механизм — lock=true на делегации. Без него продавец может отозвать делегацию в любой момент — право, которое обычные арендные поставщики за собой оставляют, потому что возврат энергии у них и есть способ перепродажи. Строки одного пула поставщика в основной сети, прочитанные 3 сентября 2026 года, не несли ключа истечения вовсе, а на следующий день нода по запросу собрала отзыв против одной из его живых делегаций, — а собранный отзыв отделён от возвращения энергии домой одной рассылкой в сеть.
Там, где блокировка есть, она точна. Срок считается блоками по три секунды, по умолчанию, если его не указать, их 86,400 — трое суток, — а в основной сети 3 сентября 2026 года потолок стоял на 864,000 блоках, то есть тридцати сутках.
Её можно продлить и нельзя сократить, и пока она держится, выхода нет вовсе: нода основной сети в тот день одинаково отказала и сроку в один блок, и сроку в четыре часа — новой блокировке надо перебить не длину старой, а то, что от неё осталось, — и отказала в отзыве наотрез, ведь заблокированный баланс не считается ни за что; два прогона в тестовой сети Nile 4 сентября 2026 года получили те же отказы против собственных блокировок, а потом отзыв был принят, как только истечение прошло, — на пяти минутах и на четырёх часах. Отдельный пост про делегацию приводит ответы ноды слово в слово. Значит, честная форма вопроса — сколько времени энергию у вас нельзя отобрать, и отвечает на неё блокировка. Срок, за которым блокировки нет, держится ровно столько, сколько продавцу неинтересно его трогать.
Суточный цикл под всем этим
Третьи часы — часы самого протокола. Лимит энергии счёта — это норма, а не баланс: потраченная энергия не вычитается из лимита, а поднимает против него счётчик использованного, и этот счётчик сходит обратно в течение следующих суток. Отсюда и берётся «она возвращается через час» — примерно так выглядит частично потраченная норма на счёте, застейкавшем собственные TRX. Для аренды из этого важно одно следствие, и оно обратно очевидному. Счётчик принадлежит кошельку, а не делегации, и не обнуляется, когда делегация уходит домой: кошелёк, только что потративший 65,000 единиц, несёт их против своего лимита до конца суток. Пятиминутный срок — это около трёхсотой доли этих суток восстановления, поэтому до следующего заказа почти ничего из него не сходит. Поэтому вторая аренда обязана перекрыть потраченное первой, а не выдать ту же величину заново, — и поэтому перед списанием мы читаем на адресе доступную энергию, лимит минус использованное, а не лимит. На другом конце рынка этот цикл и есть большая часть продаваемого: трёхсуточная аренда на кошельке, отправляющем горстку переводов в сутки, покупает восстановление не меньше, чем делегацию.
«Использованная» — не «пропавшая»
Перевод не расходует делегацию. Энергия тратится против лимита; делегация, которая этот лимит подняла, — это строка между двумя адресами, и тратящий её не трогает. Она кончается, когда делегирующий отзывает её, а с блокировкой на ней — не раньше истечения, — так что кошелёк, только что сжёгший весь свой лимит, делегацию всё ещё держит, а кошелёк, не потративший ничего, держит её не больше. Поэтому конец аренды означает две разные вещи в зависимости от того, кто смотрит: энергия была доставлена, когда появилась на адресе, а использовали её или нет — отдельный факт.
Одного пути мы не измеряли: что собственный стейкинг принимающего кошелька делает с делегацией, стоящей на нём. Если он размораживает стейк или делегирует дальше посреди срока, код актуатора намекает, что там есть что найти, а мы этого не прогоняли.
Как конец срока выглядит в заказе
Позиция, дошедшая до закрытия своего окна неиспользованной, кончается как expired, и это не сбой. Ошибки она не несёт, потому что ничего не сломалось: энергия была куплена, делегирована, подтверждена на адресе и простояла там всё окно, а вы не отправили. Списание в mode A остаётся ровно по этой причине — продаётся доставленная энергия, а не ваш акт отправки, — и в mode C, где кошелёк оплачивается до того, как известен хоть какой-нибудь получатель, expired — нормальный конец, а не исключение.
Единственный случай, когда закрывшееся окно наше, а не ваше, — это mode B. Там отправка входит в услугу: если мы не разослали вашу подписанную транзакцию к send_before, позиция закрывается как failed с broadcast_window_missed, и резерв возвращается целиком. Поздно мы тоже не рассылаем, и это намеренно, а не придирчиво: перевод, ушедший после того, как делегация снята, сжёг бы те самые TRX, ради экономии которых нас и наняли. Что каждый из этих статусов делает со счётом — на странице цен, а короткие ответы — в разделе вопросов.
Когда кошельку нужна энергия весь день
Горячему кошельку ничего из этого не подходит по форме. Длинная аренда, закрывающая сутки непредсказуемой отправки, оплачивает и часы простоя; короткая на каждый перевод означает заказ на каждый перевод. Третий вариант — правило Auto-refill: адрес и суточный бюджет, после чего за каждым переводом кошелька следует пополнение обратно примерно до 131,000 энергии — со списанием тогда, когда эта энергия видна в сети, а не когда о ней кто-то отчитался. Простаивающий кошелёк не тратит ничего, потому что ничего ему и не понадобилось: суточный бюджет резервируется, а не списывается, — и срок перестаёт быть тем, под что вы планируете.
Как самому прочитать оставшийся срок
Ничего здесь не надо принимать на веру, потому что всё это лежит в сети. Делегация между двумя адресами — отдельная строка, а поле, которое отвечает на весь этот пост, — expire_time_for_energy, отметка времени в миллисекундах в строке этой пары. Отсутствие ключа означает, что блокировки нет, а не блокировку нулевой длины, — и это честное чтение большинства розничных аренд.
Истечение штампуется по заголовку предыдущего блока, а не блока самой делегации, — поэтому отдельный пост про делегацию и советует это число читать, а не вычислять. Вторая половина ответа — сам счёт: лимит энергии, выросший, когда делегация пришла, и поля, которые пропадают — не в ноль, а именно пропадают — в тот момент, когда её забирают.