
⚠️ Дисклеймер
Важное уведомление
Данная статья носит исключительно информационный и исследовательский характер. Все приведённые материалы предназначены для обсуждения архитектуры распределённых систем, образовательных целей и анализа технологий повышения устойчивости P2P-сетей к цензуре.
Автор не распространяет готовые средства обхода блокировок и не призывает к их использованию. Любые практические реализации, описанные в статье, являются гипотетическими и требуют от пользователя самостоятельной оценки соответствия законодательству своей страны.
Ответственность за применение полученных знаний лежит исключительно на пользователе.
Возможно, ни одна из описанных технологий не нова. Но их сочетание — с учётом российских реалий (CGNAT, DPI, белые списки) — представляет собой, насколько я вижу, ещё не реализованный на практике open-source проект. Приглашаю сообщество проверить эту гипотезу вместе.
⏱️ Коротко (2 минуты)
Проблема
Классические P2P-мессенджеры (Jami, Tox):
плохо работают за CGNAT;
зависят от централизованных TURN-серверов;
легко блокируются через DPI;
не учитывают whitelist-модели.
Ключевая идея
❗ Не существует «неблокируемого» протокола.
✅ Существует система, которая ломается частично, но не полностью.
Решение
Многоуровневый клиент с fallback-архитектурой:
Прямое P2P (Hyperswarm / librats)
Ретрансляция через пиров
Маскированный транспорт (AmneziaWG, Zapret)
Асинхронный fallback
Что получаем?
Не «абсолютно неблокируемый» мессенджер (такого не бывает), а систему, которая:
повышает стоимость блокировки,
снижает точность DPI,
остаётся работоспособной даже при жёстких «белых списках».
? Вступление
Это продолжение моей предыдущей статьи о Jami в России. Там я разбирал, почему классический P2P-мессенджер испытывает трудности в российских сетях (CGNAT, блокировки TURN-серверов, устаревший ICE), и предлагал направления для модернизации.
Ключевой вывод: интернет больше не P2P-friendly среда. Причины — CGNAT, DPI, whitelist-модели, особенности мобильных сетей.
В комментариях меня справедливо критиковали: «QUIC уже блокируют», «IPv6 есть не у всех», «белые списки всё равно всё убьют». Спасибо, я услышал. Вместо того чтобы пытаться «допилить» Jami на C++, я нашёл готовую открытую платформу — Holepunch / Pear Runtime. На ней уже работает мессенджер Keet, но его исходный код мне найти не удалось.
Уточнение про Keet: в официальных GitHub-репозиториях организации Holepunch (github.com/holepunchto) находятся Pear Runtime, Hypercore, Hyperswarm, Bare. Репозитория «keet» или «keet-app» в открытом доступе нет. Это означает, что сам клиент Keet не является Open Source, хотя платформа под ним — открыта. Поэтому мы не можем форкнуть Keет или легально модифицировать его. Вместо этого мы создаём новый открытый клиент с нуля на той же платформе.
Про «белые списки всё равно убьют»: возможно. Но задача этой статьи — исследовать технологии, которые могут повысить стоимость блокировки и снизить точность DPI. Если не пытаться — точно ничего не будет.
? Часть 1. Фундамент: экосистема Holepunch / Pear Runtime
Holepunch — это компания, созданная при поддержке Tether и Bitfinex, которая предоставляет разработчикам инструменты для создания P2P-приложений. Их флагманский продукт — Pear Runtime — это полностью открытая среда для разработки, развёртывания и запуска P2P-приложений на десктопе, в терминале и, что самое важное для нас, на мобильных устройствах. Весь код экосистемы (более 100 репозиториев) открыт и доступен на GitHub под лицензиями MIT и Apache 2.0:
Pear Runtime (github.com/holepunchto/pear)
Hypercore (github.com/holepunchto/hypercore)
Hyperswarm (github.com/holepunchto/hyperswarm)
Bare (github.com/holepunchto/bare)
В основе Pear Runtime лежат ключевые строительные блоки:
Hyperswarm (DHT + hole-punching). Распределённая хеш-таблица для поиска пиров, использующая UDP hole-punching. Теоретически способна устанавливать прямые соединения даже за сложными NAT, однако эффективность в условиях CGNAT и симметричного NAT требует практических измерений в целевых сетях.
Hypercore. Безопасный, распределённый журнал с добавлением (append-only log) для хранения данных — идеально подходит для истории сообщений.
Bare. Небольшой и модульный JavaScript-рантайм для десктопа и мобильных устройств.
Вывод: фундамент у нас есть, он открыт и современен.
? Часть 2. Архитектура выживания: 5 слоёв вместо «серебряной пули»
Ошибка большинства решений — попытка найти «магический транспорт» (QUIC, IPv6, свой протокол). Реальность такова, что любой отдельный слой ломается. DPI адаптируется, whitelist'ы расширяются, CGNAT никуда не денется.
Работает только комбинация слоёв, где отказ одного уровня не убивает всю систему, а лишь снижает её функциональность. Мы проектируем управляемую деградацию.
Наша система делится на 5 уровней:
1. Core (P2P-ядро)
Задача: поиск пиров, установка соединений, передача данных.
Наш выбор: Hyperswarm (DHT + hole-punching) для быстрого прототипа. В перспективе — librats (C++) (github.com/DEgITx/librats) с протоколом DCUtR для максимальной производительности на Android и экономии батареи. На текущий момент это гипотеза, требующая сравнительного тестирования. Однако уже есть обнадеживающие данные: по замерам автора, при 100 подключенных пирах librats потребляет около 1.4 МБ ОЗУ и 1% CPU, в то время как JS-реализация libp2p в аналогичных условиях требует 400 МБ ОЗУ и загружает процессор на 100% (источник).
2. Transport (транспорт)
Задача: доставить трафик любым доступным способом.
Режимы: UDP (если разрешён), TCP, WebSocket over TLS (wss://) как основной fallback-транспорт, маскирующийся под обычный HTTPS. QUIC не используется в MVP из-за активной блокировки в РФ.
3. Obfuscation (маскировка)
Ключевой слой. Недостаточно просто «включить TLS» — DPI давно анализирует поведение: отпечатки JA3/JA4, тайминги пакетов, заголовки. Нужна имитация нормального веб-клиента с корректным TLS fingerprint и правдоподобными таймингами.
⚠️ Важное ограничение: большинство инструментов обфускации (Zapret, AmneziaWG, TrustTunnel) требуют системных привилегий (root) или работают как отдельные VPN-сервисы. В рамках MVP на Android они не встраиваются в приложение. Вместо этого:
На первом этапе используется только WebSocket over TLS с корректным TLS-фарпринтом (имитация обычного HTTPS).
Для глубокой обфускации пользователь может запустить Zapret или AmneziaWG отдельно (например, через стороннее приложение) и направить трафик мессенджера через него.
В будущем возможно исследование встроенных лёгких обфускаторов (случайная задержка, фрагментация в userspace) без root.
Инструменты для будущих исследований (не входят в MVP):
TrustTunnel — полная имитация HTTPS (требует VPN-режима).
AmneziaWG — защита WireGuard-трафика (отдельный клиент).
Zapret — фрагментация пакетов (требует root или TUN).
ByeByeDPI — обход DPI на Android без root (byebyedpi.com).
White Noise (Nostr) — альтернативная DHT для сигналинга (github.com/parres-hq/whitenoise_flutter).
4. Relay (ретрансляция)
Задача: обеспечить связь, когда прямое P2P невозможно (CGNAT, блокировка UDP).
Решение: ретрансляция через других пиров. Любой пользователь с публичным IP может стать relay-узлом. Это аналог TURN, но без фиксированных IP и центральных серверов, которые легко блокируются. Практическая реализация relay-сети требует решения задач контроля нагрузки, защиты от злоупотреблений и механизмов мотивации узлов. В MVP используется простейший relay через WebSocket-сервер (один или несколько), который не является P2P, но позволяет проверить концепцию.
5. Fallback (план Б)
Задача: сохранить возможность обмена сообщениями даже в условиях жёсткого whitelist'а, когда всё остальное сломано.
Решение: асинхронная доставка через HTTPS. При тотальном whitelist, когда разрешены только определённые домены (например, vk.com, yandex.ru), клиент может использовать публичные HTTPS-ретрансляторы, размещённые на этих доменах. Сообщения передаются в зашифрованном виде через обычные POST-запросы. Система теряет real-time, но не умирает полностью.
Как это работает технически: Клиент получает список доменов из «белых зон» (например, через предустановленный файл или через DoH). Для каждого домена проверяется доступность, и если сервер-ретранслятор развёрнут на этом домене (или клиент использует легитимный сервис как прокси), сообщения отправляются через HTTPS. Разумеется, это снижает приватность (ретранслятор видит метаданные), но сохраняет связность.
⚠️ Часть 3. Ответ на главный вопрос: Whitelist
Это самый важный сценарий. Что произойдёт при жёстком whitelist'е, когда разрешён только ограниченный список доменов и HTTPS к «доверенным» сервисам?
Уровень системы |
Что происходит |
Решение / Результат |
|---|---|---|
Прямое P2P (UDP) |
❌Полностью заблокировано |
Переход на Relay или Fallback |
Ретрансляция через пиров |
⚠️Работает, если у пира есть доступ |
Требует WebSocket-туннеля |
WebSocket over TLS (wss://) |
✅ Пропускается как HTTPS |
Основной транспорт выживает |
Асинхронный режим (HTTPS) |
✅ Работает всегда, но только если сервер-ретранслятор находится в разрешённом списке доменов |
Сохраняется базовая доставка сообщений |
Вывод: при whitelist'е real-time может не работать, но система деградирует в async-режим, а не умирает полностью. Для этого необходимо заранее развернуть ретрансляторы на доменах, которые гарантированно не блокируются (например, публичные облачные сервисы РФ).
?️ Часть 4. План исследований: строим экспериментальный клиент
Мы не форкаем Keet. Мы создаём новый клиент с нуля, используя открытую платформу Pear Runtime, и исследуем в нём механизмы повышения устойчивости к цензуре.
Этапы разработки:
Прототип (быстрый старт): собираем клиент на базе Pear Runtime с Hyperswarm для P2P и Hypercore для хранения сообщений. Тестируем базовые слои маскировки (только WebSocket fallback, без сложной обфускации).
Экспериментальная ветка (production-уровень): исследуем замену Hyperswarm на librats (C++) для повышения производительности и экономии батареи на Android. Интеграция возможна через Node.js addon или отдельный нативный сервис с IPC.
Шаг 1. Берём открытую платформу Pear Runtime
Уже доступно: Hyperswarm, Hypercore, Bare.
Шаг 2. Добавляем ретрансляцию через пиров (relay peers)
Простой прокси-слой поверх Hyperswarm, позволяющий пиру с публичным IP ретранслировать трафик для других. Практическая реализация потребует решения задач контроля нагрузки, защиты от злоупотреблений и механизмов мотивации узлов. В MVP используется простой WebSocket-ретранслятор на VPS (централизованный, но временный).
Шаг 3. Маскировка трафика — используем готовые open-source компоненты
Реалистичный подход: В первой версии клиента не будет встроенной обфускации через Zapret/AmneziaWG/TrustTunnel. Вместо этого:
Основной транспорт — WebSocket over TLS (wss://) с настройками, имитирующими обычный браузер (поддержка TLS-фарпринта).
Пользователь может запустить внешние инструменты (например, Zapret) самостоятельно, если у него есть root или административные привилегии.
В долгосрочной перспективе исследуем возможность встраивания лёгкой обфускации (случайные тайминги, фрагментация на уровне приложения).
Таблица инструментов для будущих исследований (не входит в MVP):
Компонент |
Задача |
Инструмент |
Применение (перспективное) |
|---|---|---|---|
Маскировка (VPN-режим) |
Полная имитация HTTPS |
TrustTunnel |
Резервный режим для «тяжёлых» сетей |
Обфускация WireGuard |
Защита сигнального трафика |
AmneziaWG |
Обход DPI для fallback-туннеля |
Локальный обход DPI (root) |
Фрагментация пакетов |
Zapret |
Активная обфускация на устройстве (требует root) |
Локальный обход DPI (Android без root) |
Фрагментация пакетов без системных привилегий |
ByeByeDPI |
Активная обфускация на устройстве без root |
Децентрализованная сеть |
Discovery и сигналинг |
White Noise (Nostr) |
Альтернатива собственной DHT |
Важное уточнение по Nostr: релеи используются только для обнаружения пиров и обмена сигнальной информацией; сами сообщения передаются напрямую P2P. Nostr не рассматривается как основной транспорт или гарантированный канал доставки, а лишь как вспомогательный механизм сигналинга.
Пример концептуальной реализации гибридного транспорта:
// Инициализация P2P-сети const swarm = new Hyperswarm(); swarm.join(topic, { announce: true, lookup: true }); swarm.on('connection', (socket) => { console.log('Direct P2P connection established'); handleStream(socket); }); // Fallback: если прямое соединение не устанавливается за N секунд setTimeout(() => { if (!directConnectionEstablished) { console.log('Falling back to WebSocket relay'); const ws = new WebSocket('wss://relay.example.com'); ws.onopen = () => handleStream(ws); } }, 5000);
Этот упрощённый пример демонстрирует логику: пробуем P2P, при неудаче переключаемся на ретранслятор. Реальная реализация потребует обработки переподключений, аутентификации и шифрования.
Шаг 4. Поддержка IPv6
Добавляем прямые IPv6-соединения и fallback на IPv4 с hole-punching. По данным RIPE NCC и Google, проникновение IPv6 в России на начало 2026 года оценивается в ~3–5%, при этом покрытие крайне неоднородно по регионам и операторам. IPv6 рассматривается как полезный, но не основной транспорт.
Шаг 5. Альтернативные подходы к обходу CGNAT
librats (github.com/DEgITx/librats) — высокопроизводительная C++ библиотека, замена libp2p.
DCUtR — протокол установки прямых соединений за NAT через апгрейд с relay-соединения до прямого, специфицированный в libp2p.
Другие технологии: Stunmesh-go, Yggdrasil, Tailscale/ZeroTier.
Вывод: начинаем с Hyperswarm для быстрого прототипа, но в экспериментальной ветке сразу исследуем librats как замену для production-версии.
Шаг 6 (опциональный). Защита метаданных
Многоуровневое шифрование (луковая маршрутизация) для цепочек ретрансляторов.
Шаг 7. Минималистичный интерфейс
Контакт-лист, диалоги, онлайн-статус.
Шаг 8. Сборка Android APK и публикация исходников
Собираем .apk, выкладываем на GitHub под GPLv3 или MIT.
Ориентир для Android-разработки: проект Zemzeme — форк Bitchat, объединяющий Bluetooth Mesh, libp2p и Nostr (github.com/whisperbit-labs/zemzeme-android).
? Шаг 9. План верификации гипотезы (предлагаемые эксперименты)
Любая архитектура остаётся гипотезой, пока не проверена в реальных условиях. Вот минимальный набор экспериментов, который позволит оценить жизнеспособность подхода:
Эксперимент 1: Стабильность P2P-соединений
Что делаем: Запускаем два клиента Hyperswarm за разными типами NAT (домашний Wi-Fi, мобильный CGNAT) и измеряем процент успешных прямых соединений, а также время установки связи.
Метрики: Успешность hole-punching (ориентир: согласно крупному исследованию сети IPFS, протокол DCUtR обеспечивает успех в ~70% ± 7% случаев; наша цель — достичь схожих показателей в сетях РФ). Задержка до первого сообщения (<2 с).
Эксперимент 2: Эффективность WebSocket-fallback
Что делаем: Принудительно отключаем UDP, заставляя клиентов использовать wss:// через простой ретранслятор на VPS. Измеряем задержку доставки сообщений и сравниваем с прямым P2P.
Метрики: Дополнительная задержка <500 мс, успешность доставки >95%.
Эксперимент 3: Устойчивость к DPI (упрощённый)
Что делаем: Пропускаем WebSocket over TLS через реальные сети с DPI (тестируем в разных регионах РФ, просим добровольцев). Анализируем, детектируется ли трафик как не-HTTP.
Метрики: Отсутствие блокировок на протяжении 1 часа сессии в 10 различных сетях.
Эксперимент 4: Android-совместимость
Что делаем: Тестируем работу Foreground Service на разных версиях Android (12, 13, 14, 15) в режиме ожидания. Замеряем расход батареи за час работы P2P-ядра (сравниваем JS-версию Hyperswarm и гипотетическую C++ librats).
Метрики: Расход батареи <10% за час активной переписки.
Приоритеты: На первом этапе критически важно подтвердить работоспособность связки Hyperswarm + WebSocket-fallback. Без этого всё остальное не имеет смысла. Маскировка и альтернативные каналы — это второй приоритет, который имеет смысл подключать только после того, как базовый транспорт доказал свою живучесть.
? Отдельная исследовательская гипотеза: WebRTC-туннель через легитимные сервисы
В качестве отдельного направления исследований можно рассмотреть возможность туннелирования трафика через WebRTC DataChannel поверх публичных сервисов видеозвонков. Техническая идея заключается в том, чтобы установить WebRTC-соединение внутри легитимного звонка (например, ВК или Яндекс.Телемост) и передавать через него зашифрованные данные мессенджера.
Важно: Данный подход рассматривается исключительно как исследовательская гипотеза и не входит в базовую архитектуру MVP. Он поднимает сложные вопросы, связанные с политиками использования сторонних сервисов, и требует отдельного юридического и этического анализа.
Несмотря на обилие перечисленных технологий, для начала достаточно минимальной конфигурации: Hyperswarm + WebSocket fallback + relay peers. Все остальные компоненты добавляются по мере необходимости.
? Часть 5. Технические риски
Bare на Android. Нет готового pear-android SDK. Решение: Capacitor/Cordova для упаковки веб-приложения или JNI-обёртки.
UDP и Android Doze mode. Использовать WorkManager или WebSocket fallback.
Фоновая работа (Foreground Service). Обязателен постоянный сервис с уведомлением, иначе Android убьёт процесс. Важные ограничения: начиная с Android 12 запрещён запуск foreground service из фона в большинстве случаев; с Android 14 требуется явно указывать тип сервиса (serviceType) и соответствующие permissions; в Android 15 для некоторых типов FGS введены лимиты по времени работы. Дополнительно следует учитывать агрессивные политики энергосбережения у некоторых производителей (OEM), которые могут завершать фоновые процессы даже при использовании Foreground Service.
Обновление bootstrap-узлов. Зашивать запасные домены, получать список через HTTPS (GitHub Pages) или DNS-over-HTTPS.
Подмена TLS fingerprint. В Node.js/Bare нет готового решения; на первом этапе — WebSocket fallback.
Юридические риски. Явное предупреждение при первом запуске.
Совместимость с librats/libp2p. Требуется сравнительное тестирование.
Интеграция внешних обфускаторов. Сначала встроенный WebSocket fallback, затем исследовать udp2raw, wstunnel, Zapret. Однако для Android без root интеграция Zapret и аналогичных невозможна, поэтому они остаются за рамками клиента.
Проблемы Hyperswarm с симметричным NAT/CGNAT. DHT и UDP hole-punching не всегда справляются с жёсткими NAT, характерными для мобильных операторов РФ. Смягчение: приоритет WebSocket-транспорта как основного в проблемных сетях; исследование DCUtR как более надёжной альтернативы.
Уязвимость DHT к Sybil-атакам. Hyperswarm (как и любой открытый DHT) не имеет встроенной защиты от наводнения сети подставными узлами. Это создает риск изоляции пользователя или перехвата его запросов. Смягчение: на начальном этапе полагаемся на фиксированные bootstrap-узлы и ретрансляторы; в перспективе — исследование механизмов репутации пиров.
? Часть 6. Дорожная карта: новые задачи
Точная имитация TLS (JA3/JA4). Исследовать подмену отпечатка в Bare (C++ модуль) или внешний прокси на Go.
WebSocket fallback как основной транспорт. Реализовать режим wss:// на ретранслятор.
Поведенческая мимикрия (исследовательская). Адаптация трафика под паттерны пользователя(ML).
Автономные бутстрап-узлы в РФ. Поднять серверы на VK Cloud, Яндекс.Облако с HTTPS-прокси.
Исследование librats / DCUtR. Создать экспериментальную ветку, сравнить с JS-версией libp2p по CPU и батарее.
Интеграция готовых open-source модулей (осторожно, с учётом ограничений Android). Подключить TrustTunnel, AmneziaWG, Zapret, ByeByeDPI как сменные транспорты — но только для десктопной версии или для rooted Android (либо через локальный VPN для ByeByeDPI).
Исследование протокола MASQUE. Отслеживать стандартизацию и тестировать реализацию Usque.
Использование Nostr как бэкенда. Изучить возможность замены собственной DHT-сети на публичные ретрансляторы Nostr.
Защита метаданных через NymVPN (опционально). Маршрутизация через mixnet для максимальной приватности.
? Заключение
Jami показал, что хорошая идея может быть похоронена под устаревшей архитектурой. Keet показал, что открытая платформа может служить основой для P2P-приложений, но его клиент закрыт. Наша задача — взять лучшее от обоих миров: открытую технологию Pear Runtime и требования к устойчивости из первой статьи — и сделать экспериментальный открытый клиент.
Это не «ещё один мессенджер». Это попытка исследовать, какие технологии действительно работают в российских сетях, как повысить стоимость блокировки и сохранить приватность. И теперь у нас есть не только план, но и конкретный набор open-source «кирпичиков», из которых сообщество может собрать рабочий прототип.
Архитектура будущего мессенджера в одной схеме:
[Пользователь Android] | v [Foreground Service (работа в фоне)] | v [Выбор транспорта в зависимости от сети:] - WebSocket over TLS + имитация JA3 - (внешние инструменты: Zapret/AmneziaWG/ByeByeDPI для обфускации) | v [Децентрализованная сеть: Hyperswarm / librats / Nostr] | v [Ретрансляция через пиров или публичные релеи] | v [Fallback: асинхронная доставка через HTTPS (ретрансляторы на "белых" доменах)]
Финальный тезис:
❗ Будущее P2P — это не протокол. ✅ Это система, которая переживает деградацию.
Присоединяйтесь. Код ждёт.
⚠️ Финальное юридическое предупреждение
Ещё раз: Данный проект носит исключительно исследовательский и образовательный характер. Автор не несёт ответственности за использование разрабатываемого программного обеспечения в целях, противоречащих законодательству конкретной страны. Каждый пользователь обязан самостоятельно оценить законность применения подобных инструментов в своей юрисдикции.
Комментарии (32)

iprs
08.04.2026 10:56А разве белые списки будут мешать прямым обращениям по IP внутри страны? Они же только для трансграничного трафика

GrakovNe
08.04.2026 10:56Текущая реализация белых списков на LTE сетях работает без учета размещения сервера
То есть из-под белых списков я не могу достучаться со своей мобилки до своей же домашней сетевой инфры, которая обслуживается РТК
Мне в этом случае буквально нужен прокси-посередине в виде белосписошного сервера, который размещен у клаудпровайдера из больших
То есть П2П невозможен, механизм работы сети в этом случае предполагает П2С2П, где С - сервер посредника

kda2210 Автор
08.04.2026 10:56Вы описали ровно ту ситуацию, ради которой в статье добавлены слои Relay и обфускации. Читайте раздел про hole punching — именно он решает проблему доступа из-под CGNAT к домашней сети без облачного сервера посередине.

GrakovNe
08.04.2026 10:56Расскажите пожалуйста, как я могу достучаться до своего собеседника напрямую, если его адрес не входит в доступные мне подсети, а блокировка работает на L3 по айпарям и до анализа обфускации дело вообще не доходит?

kda2210 Автор
08.04.2026 10:56Вы описали ровно ту ситуацию, для которой в статье выделены 4-й и 5-й слои (Relay и Fallback). Hole punching (3-й слой) решает проблему CGNAT, но не L3-фильтрации подсетей. Статья не утверждает, что прямое соединение возможно всегда. Статья утверждает, что архитектура должна уметь вовремя понять, что прямое соединение невозможно, и бесшовно переключиться на маскированный ретранслятор в белом списке. Это и есть переход от P2P к P2R2P (Peer-to-Relay-to-Peer) без потери связности для пользователя.

GrakovNe
08.04.2026 10:56Если у меня есть опция понять "чего мне надо" на тачке из белого списка, то вся эта питупи херня мне не сдалась вообще ни разу
Потому что накладные расходы на п2п будут, а задач которые я не могу решить имея настоящий белосписошный сервак - нет
Более того, доверять ретранслятору в белом списке - это практически 100% наехать на хонипот: даже если содержимое переписки останется шифрованным, сам ее факт - уже возможно проблема
А если факт переписки скрывать не надо, то хоть через мейлру шифрованными сообщениями общайся, никто не против

kda2210 Автор
08.04.2026 10:56Ваше замечание — лучшее доказательство того, что статья нужна. Вы описываете идеальный мир одного админа с одним сервером. Реальность же такова, что этот сервер завтра могут выключить за неуплату, а послезавтра — внести его IP в чёрный список. P2P в статье — это не про «сейчас, когда всё хорошо», а про «а что мы будем делать, когда станет плохо и привычные костыли отвалятся». Если вам и вашим собеседникам «плохо» никогда не станет — вы счастливый человек, статья не для вас.

GrakovNe
08.04.2026 10:56"когда все станет плохо" в реалиях разрешительной модели доступа будет означать, что доступны только авторизованные агенты сети к которым вы сможете подключиться, а лудомания над и белыми списками не даёт никакого результата
В этих условиях п2п будет работать либо мне инфраструктуры провайдера, где-то типа лораван сетей, либо - на инфраструктуре, но с шифрованием поверх
Завязываться на случайно выданные и легкоотбираемые впс-ки с белыми адресами - это не решение, а отвлекающая терапия
А пока "все плохо не стало" п2п все равно проигрывает стандартным трюкам, потому что они надежнее и дешевле

kda2210 Автор
08.04.2026 10:56Вы описываете сегодняшнюю экономику: дешевле и надёжнее один сервер. Статья — про завтрашнюю архитектуру. Когда привычные трюки перестанут работать, централизованное решение ляжет мгновенно, а распределённая система успеет деградировать до последнего рабочего слоя. L3-фильтрацию действительно не обойти без ретранслятора с белым IP — это данность. Вопрос в том, как именно мы используем этот факт: ставим одну VPS и молимся, что её не тронут, или заранее строим систему, умеющую переползать между сотней таких VPS без участия пользователя. Первое — работает сегодня, второе — нужно, чтобы не остаться без связи завтра. Я пишу про второе.

GrakovNe
08.04.2026 10:56Чойта оно у вас выживет
У вас все релеи которые находятся в белом списке - находятся в белом списке
То есть у провайдера инфры есть гарантированно актуальный список серверов которые могут быть релеями: пройтись по ним автоматизированной рутиной или рубануть все что выглядит хоть немного подозрительно - задача административно-командная, а не техническая
Такая система децентрализована, но при этом фактически все ее необходимые узлы лежат внутри централизованно управляемого контура и контур вам не принадлежит
Более того, при наличии такого сервера, подымать на нем релей не очень-то и надо
Ни закон ни здравый смысл ни ToS провайдеров не запрещают поднять там любой централизованный селфхост-мессенджер и общаться на арендованном железе с e2e шифрованием
Причем такой централизованно доступный чат решает все проблемы п2п вроде оверхеда по построению маршрутов или невозможности доставить пакет узлу не в сети
А если сервак упадет по любой причине от аутажа до блокировки - то и централизованный чат и узел п2п сети лягут одинаково
При этом, я исхожу из того что белосписочная инфра управляется централизовано и принадлежит крупным компаниям которые сделают все что угодно, чтобы продолжать работать и не потерять лицензию

kda2210 Автор
08.04.2026 10:56Абсолютно согласен: если регулятор решит выкосить все VPS разом — ляжет всё, и P2P, и централизованный чат.
Разница в том, что централизованный сервер — это одна лампочка: щёлкнул выключателем — темно. Сеть ретрансляторов — это гирлянда из сотни лампочек. Чтобы погасить свет полностью, надо выкрутить каждую, причём часть из них висит в разных комнатах с разными хозяевами.
Да, комната контролируется не вами. Но пока администратор обходит все углы с отвёрткой, у вас есть свет.
Статья не обещает бессмертие. Она предлагает архитектуру, которая растягивает процесс отключения во времени и повышает его стоимость.

GrakovNe
08.04.2026 10:56у вас на всю эту вашу гирлянду два выключателя и оба у цензора в руках: щелк и все что не принадлежит крупным юрлицам погасло
И снова: в этих условиях нафиг нет никакой разницы какая у вас степень децентрализации, если вся ваша "де"-инфра принадлежит двум крупным провайдерам, которым все еще нужна лицензия

kda2210 Автор
08.04.2026 10:56Согласен, абсолютной защиты нет. Вопрос в том, сколько времени и бюрократических телодвижений потребуется, чтобы выключить именно вашу систему. В моей архитектуре это число выше, чем в централизованной. Если вам эта разница не важна — спору нет. Я считаю её существенной.

GrakovNe
08.04.2026 10:56Я считаю, что единственный объективный тип проблем - это инженерно-технические проблемы
Нельзя полететь быстрее скорости света и нельзя запретить фотонам нести энергию сколько эдиктов и предписаний не издавай
Степень эффективности бюрократии зависит от давления на агента и контроля за исполнением со стороны принципала, никаких других преград нет
Я считаю, что не/блокировка интернета - это политический вопрос, а не технологический
И положить привычную связь немедленно - вообще не проблема, причем в любой стране: хоть в Казахстане в 22м, хоть в Штатах на 9/11

kda2210 Автор
08.04.2026 10:56Справедливо. Приказ «выключить всё» обнуляет любую инженерию. Статья — про жизнь до этого приказа. Спасибо за ёмкое дополнение.

Tor-Dur-Bar
08.04.2026 10:56Следующий шаг, полагаю, вместо блокировки трафика — “блокировка” людей. Попался на использовании того что нельзя — пройдёмте. Тогда запрещёнку можно даже не блокировать, наоборот, так даже легче ловить нарушителей.
GrakovNe
Во-первых это очередная нейростатья
Во-вторых никакая децентрализация не поможет обойти белые списки, суть которых как раз в централизации каналов связи через контролируемые прокси
Если вы поднимаете Jami/Tox/чтоугодно на сервере из списка "разрешенных и одобренных" то весь протекающий через него контент становится доступен группе "разрешающих и одобряющих", по крайней мере в шифрованном виде
Вопрос его дешифровки или хотя бы установления факта коммуникации скорее административный, чем технический и в целом в нем нет смысла
Что касается P2P в модели точечных блокировок, а не "точечных решений", то DHT существует на рынке решений много лет
kda2210 Автор
Статья не про «победу» над белыми списками. Она про то, чтобы мессенджер не сдох полностью, а перешёл в режим «почтового голубя» через HTTPS. Просто не у всех есть VPS из «белого списка»
GrakovNe
У вас в статье упоминание белых списков, я комментирую упоминание
О том "про что статья" я понимаю по содержанию, а не по мнению автора статьи: написано про белые списки - читаю про белые списки, никакой магии
Я исхожу из того, что ни у кого нет белосписочных VPS в перспективе
То, что сейчас их можно налудоманить - решаемый вопрос организации сетей у клаудпровайдеров, через административный контроль и несложные технические фиксы сервисов, которые из кучи айпарей выдают случайный
Для перехода в режим почтового голубя много чего есть, причем P2P без централизующего прокси вне контура цензора - не лучшее решение в силу объективной невозможности доставить сообщение пока клиент не в сети
По мне, так это очередной пост в стиле "посоны тырнету каким мы его знали кабзда всем срочно пользоваться питупи", причем написанный 90/10 нейросеткой
kda2210 Автор
Отличный разбор. За исключением одного: вы спорите с лозунгом, которого в статье нет. Я не кричу «всё пропало, юзайте P2P». Я описываю конкретный механизм многослойной доставки, который в условиях белых списков и DPI позволяет хоть как-то сохранить связность.
Если ваша критика в том, что это не решит проблему при полном отсутствии VPS и при тотальном запрете любого HTTPS — согласен, не решит. Как и любое другое решение. Но пока VPS существуют и пока HTTPS-трафик пропускают, грамотная архитектура деградации выигрывает у монолита, который ломается целиком.
По поводу нейросетки — я автор, и мне странно оправдываться за текст, который писал сам. Но если вас смущает стиль, готов обсудить технические детали, а не литературные достоинства.
GrakovNe
пока существуют и пока пропускают - п2п не нужен потому что есть давно описанный набор трюков для мимикрии и имитации
А если эти трюки перестанут работать, то и п2п ляжет примерно так же, потому что если ты не можешь доораться до собеседника из-за того что его айпарь не разрешен к докрикиванию, то какая разница сколько у вас там "пи" в вашем питупи
Что касается стиля, я действительно хотел бы меньше видеть статей с налетом нейроредакции или нейрогенерации. Но никто не обязан соответствовать моим желаниям, так же как никто мне не запретит их высказывать
kda2210 Автор
Пожалуй, на этом остановлюсь. Спасибо за дискуссию — она отлично иллюстрирует, почему одни инженеры готовятся к плохой погоде, пока другие надеются, что зонтик всегда будет под рукой. Я отношусь к первой категории. Удачи!
GrakovNe
Пожалуйста, дискуссия всегда приятно
Я не призываю мокнуть под дождем, я говорю что дождевик от цунами не спасает
Есть много чего поделать и куда смотреть, чтобы общаться без гарантированного MITM, децентрализованные сети никак мешают и не помогают в этом случае - они просто добавляют расходы на поддержание инфры
kda2210 Автор
Спасибо. Про MITM — согласен, децентрализация от него сама по себе не спасает. Я смотрел больше в сторону живучести канала, а не чистоты. Разные задачи — разные инструменты.
413x
Под каждой статьей найдется альтернативно одаренный и напишет про нейростатью, когда уже таких банить начнут
Antonio_Margheriti
Все это какая то бессмысленная демагогия о том как будем между собой коннектиться и шифровать свои следы, вот только каким образом, если привычного интернета не будет - не понятно (с белыми списками, да с закрытием доступа белым VPS, который явно появился по ошибке, не усмотрели, так сказать). Все возможные варианты вовсе мимо WAN (например радио), и опять же не гарантируют скорости и бесконечной работы (будут контролироваться, ограничиваться).
kda2210 Автор
Справедливое замечание. Но по такой логике можно и веб-сервер не поднимать: ведь если отключат электричество во всем городе, он тоже не заработает. Я исхожу из того, что полное отключение от мира — событие экстраординарное и краткосрочное. А вот жизнь в режиме „DPI режет UDP, а у 90% пользователей серый IP“ — это наша ежедневная реальность прямо сейчас. Вот для нее и нужна система, а не просто еще один протокол.
Antonio_Margheriti
Ну почему же отключение от мира событие экстраординарное и краткосрочное. Может быть периодические белые списки это как будто бы тренировка людей на перестройку их привычного быта. Сейчас с белыми списками есть все плюс-минус необходимое для обычного человека - доступ к деньгам, такси, доставка, госуслуги, связь и т.д. Почему бы государству и не оставить международный интернет только тем , кто сможет это обосновать (условно тем самым аккредитованным бело списочным компаниям), а остальным только белые списки. Условный Иван Иванов не сможет работать на удаленке в иностранной компании - ну что поделать, бегом на завод или на крайняк дадут ему сертифицированный ФСТЭК VipNet Client c полным контролем каждого шага в сети. Вариантов масса, приспособят.
kda2210 Автор
Сценарий «белые списки для всех, VipNet для избранных» звучит как отличный сюжет для антиутопии. Возможно, мы к нему и идём. Но пока Иван Иванов ещё может заказать VPS у хостера и поднять там ретранслятор, статья описывает, как это делать с умом. Когда наступит эра тотального VipNet, мои рекомендации устареют ровно так же, как и всё остальное, написанное про интернет до 2020 года. Я предпочитаю решать инженерные задачи для той реальности, которая есть за окном прямо сейчас, а не для той, что может наступить через пять лет. В конце концов, если завтра отключат электричество во всём городе, мой веб-сервер тоже не выживет — но это не повод не ставить его сегодня.