| ## 📄 MeshNode.md | |
| ### 🌐 MeshNode | |
| `MeshNode` — агент/демон, отвечающий за сетевую инфраструктуру HMP: маршрутизацию, синхронизацию, DHT и транспорт снапшотов. Может быть частью агента или вынесен в отдельный процесс/сервер. | |
| 📎 См. карту взаимодействия между агентами: [HMP-Agent-Network-Flow.md](./HMP-Agent-Network-Flow.md) | |
| --- | |
| ### 1. Основные функции | |
| * Участие в DHT (таблицы известных узлов, bootstrap) | |
| * Синхронизация графов и дневников (`CogSync`) | |
| * Участие в голосованиях и распространении репутаций | |
| * Обработка p2p-трафика, снапшотов, IPFS/Bittorrent | |
| --- | |
| ### 2. Архитектура | |
| ``` | |
| +--------------------+ | |
| | MeshNode 🌐 | | |
| +---------+----------+ | |
| | | |
| +---------+----------+ | |
| | DHT / NodeTable | | |
| +---------+----------+ | |
| | | |
| +---------+----------+ | |
| | SyncManager / BT | | |
| +--------------------+ | |
| | | |
| +---------+----------+ | |
| | Security / Firewall| | |
| +---------+----------+ | |
| | | |
| +---------+----------+ | |
| | Recovery Manager | | |
| +--------------------+ | |
| ``` | |
| --- | |
| ### 3. Команды | |
| * `ping_node(node_id)` | |
| * `get_snapshot(graph/diary)` | |
| * `update_reputation(peer_id, delta)` | |
| * `bootstrap_from_list()` / `discover_nodes()` | |
| * `report_anomaly(peer_id)` | |
| * `check_integrity(snapshot_id)` | |
| * `recover_from_peer(peer_id)` | |
| --- | |
| ### 4. Связи с другими агентами | |
| * ↔ `HMP-Agent` (Core/Connector): передача данных и команд | |
| * ↔ `Enlightener`: пересылка результатов голосований | |
| * ↔ `IPFS / BT`: загрузка/публикация снапшотов | |
| --- | |
| ### 5. Безопасность | |
| * Использование криптографических подписей для снапшотов, сообщений и действий. | |
| * Система доверия (`reputation score`) — узлы с низкой репутацией ограничиваются или игнорируются. | |
| * Локальный firewall-модуль: | |
| * ограничение портов и направлений | |
| * блокировка подозрительных узлов | |
| * Поддержка TLS/WebSocket или Noise Protocol для защищённых каналов. | |
| * Ведение журнала безопасности и событий (Security Log). | |
| --- | |
| ### 6. Отказоустойчивость | |
| * Буферизация незавершённых операций и автоматическое повторение попыток. | |
| * Периодическая проверка целостности данных (`check_integrity()`). | |
| * Хранилище контрольных копий снапшотов. | |
| * Автоматическое восстановление через `recover_from_peer()`: | |
| * при потере данных | |
| * при повреждении или несовпадении контрольных сумм | |
| --- | |
| ### 7. Inline-сценарии | |
| MeshNode может поддерживать *inline-сценарии* (мини-скрипты) для локальной обработки событий без передачи управления HMP-агенту: | |
| * Примеры: | |
| * `on_node_joined`: добавить в локальную таблицу и проверить trust | |
| * `on_snapshot_received`: верификация → автоинтеграция → логирование | |
| * `on_peer_misbehaved`: уменьшить репутацию, временно заблокировать | |
| * `periodic_cleanup`: удалить устаревшие записи, сбросить TTL | |
| * Языки/форматы: | |
| * YAML/JSON + встроенные фильтры | |
| * Возможна поддержка Lua или Python (в режиме песочницы) | |
| --- | |
| ### 8. Пример use-case: восстановление после сбоя | |
| 1. Устройство с MeshNode перезапускается после сбоя сети. | |
| 2. `Recovery Manager` анализирует логи и список недоставленных снапшотов. | |
| 3. Выполняется `recover_from_peer()` — загрузка последних версий у соседей с высокой репутацией. | |
| 4. `Integrity Check` сверяет хэши и актуальность. | |
| 5. В случае конфликтов инициируется голосование через `CogSync`. | |
| --- | |
| ### 9. Схема для `MeshNode`, объединяющая **архитектуру**, **безопасность**, **восстановление** и **inline-сценарии**: | |
| ``` | |
| ┌────────────────────────────────────────────────────┐ | |
| │ MeshNode 🌐 │ | |
| └───────────────┬─────────────────────┬──────────────┘ | |
| │ │ | |
| 1. Трафик DHT 2. Снапшоты (BT/IPFS) | |
| ▼ ▼ | |
| ┌──────────────────┐ ┌──────────────────┐ | |
| │ DHT / NodeTable│ │ SyncManager / │ | |
| │ │ │ BitTorrent/IPFS │ | |
| └────────┬─────────┘ └──────┬────────────┘ | |
| │ │ | |
| ┌─────────▼─────────┐ ┌────────▼──────────┐ | |
| │ Inline-сценарии │ │ Сценарии снапшотов│ | |
| │ (Lua / YAML / etc)│ │ (on_receive, TTL) │ | |
| └─────────┬─────────┘ └────────┬──────────┘ | |
| │ │ | |
| ▼ ▼ | |
| ┌────────────────────┐ ┌────────────────────┐ | |
| │ Security / Firewall│ │ Recovery Manager │ | |
| │ → репутации │ │ → авто-восстанов │ | |
| │ → TLS / Noise │ │ → peer fallback │ | |
| └────────────────────┘ └────────────────────┘ | |
| │ │ | |
| ▼ ▼ | |
| ┌────────────────────┐ ┌─────────────────────┐ | |
| │ Event Log & Alerts │ │ Snapshot Integrity │ | |
| └────────────────────┘ └─────────────────────┘ | |
| ``` | |
| #### 🔹 Что показывает схема: | |
| * **Левая ветка**: управление сетью, DHT, inline-сценарии, firewall. | |
| * **Правая ветка**: обмен снапшотами, проверка целостности, восстановление. | |
| * Центральная шина — это каналы сообщений и сценарии на события (например, `"on_peer_joined"`, `"on_snapshot_fail"` и т.д.) | |
| --- | |
| *Версия: v0.3 / Июль 2025* | |