Лайт-клиент
Клиент TON, не синхронизирующий весь блокчейн, а читающий выборочные данные через lite-сервер по протоколу ADNL. Лежит в основе большинства SDK и кошельков.
Синонимы: lite client, лайт клиент, ton client
Лайт-клиент (lite client) — это клиентская сторона протокола взаимодействия с TON, рассчитанная на устройства, которые не могут (и не хотят) держать у себя полный стейт блокчейна. Вместо синхронизации мастерчейна и шардов лайт-клиент общается с одним или несколькими lite-серверами и читает только те данные, которые ему сейчас нужны.
Зачем нужен
Полная нода TON требует значительных ресурсов: десятки гигабайт диска, постоянного интернета, валидной конфигурации сети. Это адекватно для валидаторов и инфраструктурных сервисов, но абсурдно для мобильного кошелька или браузерного дашборда. Лайт-клиент решает эту проблему: ему достаточно знать адреса lite-серверов и публичные ключи, чтобы безопасно работать с блокчейном.
Как работает
В типичном цикле:
- Клиент устанавливает ADNL-соединение с lite-сервером.
- Запрашивает текущий блок мастерчейна и подпись валидаторов.
- Делает запрос к нужным данным — баланс аккаунта, состояние контракта, get-метод.
- Получает ответ вместе с Merkle-proof, доказывающим, что эти данные действительно соответствуют последнему блоку.
- Проверяет proof локально и использует данные.
При отправке транзакции лайт-клиент только публикует подписанное внешнее сообщение в lite-сервер; дальше оно само распространяется по сети валидаторов и попадает в блок.
Где встречается
Практически все библиотеки для работы с TON под капотом — это лайт-клиенты:
- TonWeb — JavaScript-клиент, исторически первый.
- ton-core / ton-crypto / ton-lite-client — современный TypeScript-стек от ton-org.
- tonutils-go — клиент на Go, популярный у бекенд-команд.
- pytonlib / pytoniq — Python-клиенты, часто используются в боте/индексаторе.
Эти SDK дают высокоуровневые методы: «получить баланс адреса», «вызвать get-метод», «отправить jetton», но за кадром каждый такой вызов превращается в lite-server-запрос.
Доверие и proof
Главное отличие лайт-клиента от обычного REST-клиента над сторонним индексатором — встроенная проверяемость ответов. Лайт-клиент не обязан верить серверу: подпись валидаторов и Merkle-proof позволяют локально убедиться, что присланные данные действительно из блокчейна. На практике многие SDK по умолчанию полагаются на доверенных lite-серверов из официального конфига и не валидируют proof для каждого ответа, но возможность всегда есть.
Ограничения
Лайт-клиент работает только с тем, что отдаёт lite-сервер. Если сервер недоступен — клиент не функционирует. Чтобы повысить надёжность, серьёзные приложения подключаются сразу к нескольким серверам и при ошибках переключаются между ними. Также лайт-клиент сам по себе не делает индексирование истории — для глубоких запросов нужны отдельные сервисы поверх архивных нод.