Files
NNNet/docs/ARCHITECTURE.md
dom4k 1cfdb42e04
Some checks failed
Android CI / build (push) Has been cancelled
Refine NNNet UI and rename Android package
2026-03-16 20:29:49 +00:00

2.7 KiB
Raw Blame History

Архитектура NNNet

Слои

  • BLE Transport: сканирование, реклама, соединения, обмен пакетами.
  • Mesh Layer: маршрутизация, TTL, дедупликация, ACK.
  • Messaging Layer: список чатов, отдельный экран диалога, статусы доставки, история.
  • Storage Layer: Room для локального хранения.
  • Delivery Layer: retry queue, ACK timeout, повторные отправки из фонового сервиса.
  • Update Layer: version.json, changelog и ручная/автоматическая проверка обновлений клиента.

Пользовательский сценарий

  • Главный экран показывает список чатов в стиле Telegram.
  • Верхний статусный блок переключает mesh-сеть между состояниями В сети и Не в сети.
  • Слева в шапке показывается общее количество известных устройств в mesh.
  • Настройки вынесены в меню три точки, отдельный debug-лог из пользовательского интерфейса убран.
  • Отправка сообщений доступна только из экрана конкретного диалога.

Топология сети

  • Выделенный сервер или хост для работы mesh не нужен.
  • Все узлы равноправны: каждый телефон может быть источником, получателем и ретранслятором.
  • Сеть не рассчитана на бесконечное число пользователей. Масштаб ограничивается радиусом BLE, количеством соседних соединений, частотой ретрансляции и ограничениями Android по энергии и фону.

Сетевой пакет (черновик)

{
  "messageId": "uuid",
  "senderId": "device-or-user-id",
  "targetId": "user-or-group-id",
  "ttl": 6,
  "timestamp": 0,
  "type": "message|ack|presence",
  "payload": "base64-or-json"
}

Ближайшие шаги

  1. Укрепить transport: фрагментация крупных пакетов и более надёжный reconnect.
  2. Ввести шифрование payload и управление профилями пользователей.
  3. Добавить инструментальные BLE-тесты на нескольких устройствах и полевой прогон.