Логическое время (Lt) и очерёдность сообщений
Logical time (lt) в TON задаёт порядок транзакций и сообщений внутри аккаунта и между ними.
Logical time (lt)
Logical time (lt) — логическая метка времени в TON. Она упорядочивает события сильнее, чем настенные часы: для одного аккаунта транзакции идут по возрастанию lt, а сообщения несут created_lt отправителя.
Если ты отлаживаешь «почему сообщение B обработалось раньше A» — смотри lt, а не только timestamp блока.
Зачем lt разработчику
- У каждой транзакции аккаунта есть свой
lt - Исходящие сообщения получают
created_ltв рамках этой транзакции - Получатель обрабатывает входящие с учётом порядка доставки и своих
lt - В API/эксплорерах
lt— ключ к цепочке «родитель → потомки»
Как это работает
- Аккаунт исполняет транзакцию с монотонно растущим
lt. - Исходящие сообщения нумеруются логическим временем внутри этой транзакции.
- В другом шарде доставка асинхронна: локальный порядок на получателе не обязан совпасть с «ожиданием из Solidity-mental-model».
- Для протокола request/response храни
query_id/ свой идентификатор — не полагайся только на «следующая транзакция».
now (unix-time в контракте) — для таймаутов и человеческой шкалы. lt — для каузального порядка в машине состояний сети.
Частые ошибки
Сортировать историю только по now → коллизии и кросс-шард эффекты; для порядка на аккаунте первичен lt.
Ожидать глобальный единый таймлайн как в одном блоке EVM → TON шардирован; каузальность через сообщения и lt, не через один общий gas-order.
Не логировать lt при отладке интеграций → без lt трудно связать исходящее сообщение кошелька с входящим на контракте.
Что дальше
- Внутренние и внешние сообщения — что упорядочивает lt
- Workchains и шардинг — почему порядок кросс-шард асинхронный
- Как устроена сеть TON — кто включает транзакции в блоки
Материалы gramdocs.tech носят образовательный характер и не являются финансовой, юридической или инвестиционной рекомендацией. Работа с блокчейном TON и токеном Gram связана с рисками потери средств. Правовая информация