# TGLock 2.0 architecture ## Local protocols Один TCP-порт автоматически принимает два типа клиентов: - MTProto proxy с постоянным 16-байтовым secret — основной режим; - SOCKS5 без авторизации — режим совместимости. MTProto init проверяется по secret и transport tag. Из него извлекаются DC, признак media-соединения и тип транспорта. Для upstream создаётся новый стандартный obfuscated2 init, а последующий поток пере-шифровывается между локальным secret и Telegram. ## Transport cascade Для каждого DC и отдельно для media-соединений строится список маршрутов: 1. сохранённый успешный маршрут; 2. точный Telegram IP с `kwsN` или `kwsN-1` в TLS SNI и WebSocket Host; 3. дополнительный Telegram IP, если он определён; 4. системный DNS; 5. явно настроенный пользователем Cloudflare Worker. Поддерживаются DC1–5 и media/CDN DC203. DC203 использует WebSocket-host DC2, но подключается к собственному IP. После ошибки маршрут получает exponential cooldown от 30 секунд до 30 минут. Успешный маршрут становится первым для следующего соединения того же DC и типа трафика. ## TLS policy Проверка сертификатов и hostname никогда не отключается. При подключении к заданному Telegram IP TCP destination отделён от URI host: TLS продолжает проверять сертификат настоящего `kws*.web.telegram.org`. Cloudflare Worker принимается только как пользовательская настройка. TGLock не загружает и не скрывает публичные списки чужих доменов. ## Cloudflare Worker contract Worker должен принимать WebSocket на: ```text /apiws?dst=&dc= ``` и проксировать бинарные frames в TCP `:443`. Рекомендуется добавить собственную авторизацию до стабильного релиза; поэтому Worker остаётся расширенной опцией alpha-версии. ## Current limitations - SNI camouflage не включена: небезопасное отключение hostname verification из референсной реализации не переносится. - Голосовые звонки по UDP не поддерживаются. - Работоспособность медиа зависит от конкретного DC аккаунта и доступности Telegram/Cloudflare у провайдера. - Пулы заранее открытых WebSocket-соединений будут добавлены после измерения, что они не создают лишнюю нагрузку и не ухудшают стабильность.