HMP / docs /MeshNode.md
GitHub Action
Sync from GitHub with Git LFS
2c3dd0c
|
raw
history blame
7.87 kB
## 📄 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*