К основному содержанию
T TON Adoption
← Словарь
NODE/03 · Term

Лайт-клиент

Клиент TON, не синхронизирующий весь блокчейн, а читающий выборочные данные через lite-сервер по протоколу ADNL. Лежит в основе большинства SDK и кошельков.

Синонимы: lite client, лайт клиент, ton client

Лайт-клиент (lite client) — это клиентская сторона протокола взаимодействия с TON, рассчитанная на устройства, которые не могут (и не хотят) держать у себя полный стейт блокчейна. Вместо синхронизации мастерчейна и шардов лайт-клиент общается с одним или несколькими lite-серверами и читает только те данные, которые ему сейчас нужны.

Зачем нужен

Полная нода TON требует значительных ресурсов: десятки гигабайт диска, постоянного интернета, валидной конфигурации сети. Это адекватно для валидаторов и инфраструктурных сервисов, но абсурдно для мобильного кошелька или браузерного дашборда. Лайт-клиент решает эту проблему: ему достаточно знать адреса lite-серверов и публичные ключи, чтобы безопасно работать с блокчейном.

Как работает

В типичном цикле:

  1. Клиент устанавливает ADNL-соединение с lite-сервером.
  2. Запрашивает текущий блок мастерчейна и подпись валидаторов.
  3. Делает запрос к нужным данным — баланс аккаунта, состояние контракта, get-метод.
  4. Получает ответ вместе с Merkle-proof, доказывающим, что эти данные действительно соответствуют последнему блоку.
  5. Проверяет 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-сервер. Если сервер недоступен — клиент не функционирует. Чтобы повысить надёжность, серьёзные приложения подключаются сразу к нескольким серверам и при ошибках переключаются между ними. Также лайт-клиент сам по себе не делает индексирование истории — для глубоких запросов нужны отдельные сервисы поверх архивных нод.

См. также