Архитектура чата (группового) База данных: SQLite3 (WAL mode), chats.db ================================================================================ Схема БД (7 таблиц) ================================================================================ -- 1. my_nodes — наши собственные ноды (разные устройства / инстансы utun) CREATE TABLE my_nodes ( node_id INTEGER PRIMARY KEY, name TEXT NOT NULL, -- human-readable имя устройства x25519_pubkey BLOB NOT NULL, -- 32 bytes ed25519_pubkey BLOB, -- 32 bytes (derive из x25519 privkey) is_current INTEGER DEFAULT 0, -- 1 = текущий инстанс (к которому подключён GUI) created_at INTEGER DEFAULT (unixepoch()), updated_at INTEGER DEFAULT (unixepoch()) ); -- 2. nodes — известные удалённые узлы (получаем через msg_transport от utun) CREATE TABLE nodes ( node_id INTEGER PRIMARY KEY, name TEXT, x25519_pubkey BLOB NOT NULL, -- 32 bytes ed25519_pubkey BLOB, -- 32 bytes (для проверки подписи пира) is_online INTEGER DEFAULT 0, last_seen_at INTEGER DEFAULT (unixepoch()), created_at INTEGER DEFAULT (unixepoch()), updated_at INTEGER DEFAULT (unixepoch()) ); -- 3. channels — каналы (DM и групповые) CREATE TABLE channels ( id INTEGER PRIMARY KEY AUTOINCREMENT, channel_id TEXT NOT NULL UNIQUE, -- "dm:nodeA_nodeB" (A