|
## 📄 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* |
|
|