Техническая документация
Chepuhagram
Защищённый мессенджер с end-to-end шифрованием на основе протокола X25519/AES-GCM
X25519
Обмен ключами
AES-256
Шифрование
JWT
Аутентификация
QUIC / UDP
SCP Звонки v2.1.1
Архитектура системы
Общий обзор компонентов, взаимодействие бэкенда и клиента, схема развёртывания
→
Протокол SCP (v2.1.1)
Спецификация медиа-протокола звонков: QUIC SFU (:4001), UDP Relay (:4000 DSCP EF), Zero-Copy Pipeline и FEC
→
Модели БД
Полное описание таблиц SQLite/PostgreSQL: User, Message, MediaItem, Session
→
API аутентификации
Регистрация, вход, TOTP 2FA, QR-авторизация, управление сессиями
→
WebSocket система
Управление соединениями, события в реальном времени, WebRTC-сигнализация
→
Экраны Flutter
Подробное описание каждого экрана приложения: логин, чат, настройки, звонки
→
E2EE шифрование
Протокол шифрования: генерация ключей, Диффи-Хеллман, шифрование сообщений
→
Стек технологий
Бэкенд & Медиа SFU
- FastAPI Web-фреймворк REST & WS
- Go (QUIC SFU) Медиа-сервер :4001 & :4000
- quic-go RFC 9000 + RFC 9221 Datagrams
- SQLAlchemy ORM (async)
- SQLite / PostgreSQL БД
- APScheduler Планировщик фоновых задач
- python-jose JWT HS256 токены
- Firebase Admin Push уведомления
Flutter & Нативные Движки
- Flutter 3.x Кроссплатформенный UI
- Rust (FFI) Zero-Copy Media Pipeline
- DirectX 11 (D3D11) Shared GPU Textures
- WinMFT / MediaCodec Аппаратный H.264 GDR
- RNNoise Нейросетевое шумоподавление
- Drift (SQLite) Локальная БД сообщений
- Provider State management
- cryptography X25519 / AES-256-GCM
Безопасность & Сеть
- X25519 ECDH обмен ключами E2EE
- AES-256-GCM 96-bit Nonce медиа & сообщений
- TLS 1.3 Встроенное шифрование QUIC
- DSCP EF (0xB8) Приоритет QoS в сетях
- XOR FEC Защита от потери видеопакетов
- PBKDF2-HMAC Хеширование мастер-пароля
- TOTP Двухфакторная аутентификация
Структура проекта
📁 chepuhagram/
📁 lib/ — Flutter клиент
📁 core/ — Константы, тема
📁 data/ — Модели, репозитории, локальная БД
📁 datasources/ — local_db_service.dart, ws_client.dart
📁 models/ — contact_model, message_model, session_model
📁 repositories/ — contact_repository
📁 domain/ — Бизнес-логика
📁 services/ — api_service, crypto_service, webrtc_service
📁 logic/ — State management
📄 auth_provider.dart
📄 contact_provider.dart
📁 presentation/ — UI экраны
📁 screens/ — 25 экранов приложения
📁 srv/ — Python бэкенд
📁 app/ — Основное приложение
📁 api/ — REST эндпоинты
📁 core/ — Конфигурация, безопасность
📁 db/ — Модели SQLAlchemy
📁 services/ — Крипто, уведомления
📁 websocket/ — ConnectionManager
📄 main.py — FastAPI entrypoint
📁 site/ — Эта документация