GitHub Action
commited on
Commit
·
0d6a8ab
1
Parent(s):
263b084
Sync from GitHub with Git LFS
Browse files- docs/MeshNode.md +80 -54
docs/MeshNode.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
# MeshNode
|
| 2 |
|
| 3 |
-
`MeshNode` — агент/демон, отвечающий за сетевую инфраструктуру HMP: маршрутизацию, синхронизацию, DHT
|
|
|
|
| 4 |
|
| 5 |
См. карту взаимодействия между агентами: [HMP-Agent-Network-Flow.md](./HMP-Agent-Network-Flow.md)
|
| 6 |
|
|
@@ -8,10 +9,14 @@
|
|
| 8 |
|
| 9 |
## 1. Основные функции
|
| 10 |
|
| 11 |
-
* Участие в DHT (таблицы известных узлов, bootstrap)
|
| 12 |
-
* Синхронизация графов и дневников (`CogSync`)
|
| 13 |
-
* Участие в голосованиях и распространении
|
| 14 |
-
* Обработка p2p-трафика, снапшотов, IPFS/Bittorrent
|
|
|
|
|
|
|
|
|
|
|
|
|
| 15 |
|
| 16 |
---
|
| 17 |
|
|
@@ -28,6 +33,10 @@
|
|
| 28 |
|
|
| 29 |
+---------+----------+
|
| 30 |
| SyncManager / BT |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 31 |
+--------------------+
|
| 32 |
|
|
| 33 |
+---------+----------+
|
|
@@ -39,6 +48,15 @@
|
|
| 39 |
+--------------------+
|
| 40 |
```
|
| 41 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
---
|
| 43 |
|
| 44 |
## 3. Команды
|
|
@@ -50,27 +68,30 @@
|
|
| 50 |
* `report_anomaly(peer_id)`
|
| 51 |
* `check_integrity(snapshot_id)`
|
| 52 |
* `recover_from_peer(peer_id)`
|
|
|
|
|
|
|
| 53 |
|
| 54 |
---
|
| 55 |
|
| 56 |
## 4. Связи с другими агентами
|
| 57 |
|
| 58 |
-
*
|
| 59 |
-
*
|
| 60 |
-
*
|
| 61 |
|
| 62 |
---
|
| 63 |
|
| 64 |
## 5. Безопасность
|
| 65 |
|
| 66 |
-
*
|
| 67 |
* Система доверия (`reputation score`) — узлы с низкой репутацией ограничиваются или игнорируются.
|
| 68 |
* Локальный firewall-модуль:
|
| 69 |
|
| 70 |
-
* ограничение портов и
|
| 71 |
-
* блокировка подозрительных
|
| 72 |
* Поддержка TLS/WebSocket или Noise Protocol для защищённых каналов.
|
| 73 |
* Ведение журнала бе��опасности и событий (Security Log).
|
|
|
|
| 74 |
|
| 75 |
---
|
| 76 |
|
|
@@ -78,11 +99,12 @@
|
|
| 78 |
|
| 79 |
* Буферизация незавершённых операций и автоматическое повторение попыток.
|
| 80 |
* Периодическая проверка целостности данных (`check_integrity()`).
|
| 81 |
-
* Хранилище контрольных копий
|
| 82 |
* Автоматическое восстановление через `recover_from_peer()`:
|
| 83 |
|
| 84 |
-
* при потере данных
|
| 85 |
-
* при повреждении или несовпадении контрольных
|
|
|
|
| 86 |
|
| 87 |
---
|
| 88 |
|
|
@@ -92,66 +114,70 @@ MeshNode может поддерживать *inline-сценарии* (мини
|
|
| 92 |
|
| 93 |
* Примеры:
|
| 94 |
|
| 95 |
-
* `on_node_joined`: добавить в локальную таблицу и проверить trust
|
| 96 |
-
* `on_snapshot_received`: верификация → автоинтеграция →
|
| 97 |
-
* `on_peer_misbehaved`: уменьшить репутацию, временно
|
| 98 |
-
* `
|
|
|
|
| 99 |
|
| 100 |
* Языки/форматы:
|
| 101 |
|
| 102 |
-
* YAML/JSON + встроенные
|
| 103 |
-
* Возможна поддержка Lua или Python (в режиме песочницы)
|
| 104 |
|
| 105 |
---
|
| 106 |
|
| 107 |
## 8. Пример use-case: восстановление после сбоя
|
| 108 |
|
| 109 |
1. Устройство с MeshNode перезапускается после сбоя сети.
|
| 110 |
-
2. `Recovery Manager` анализирует логи и список недоставленных
|
| 111 |
3. Выполняется `recover_from_peer()` — загрузка последних версий у соседей с высокой репутацией.
|
| 112 |
4. `Integrity Check` сверяет хэши и актуальность.
|
| 113 |
-
5. В случае конфликтов инициируется голосование через `CogSync`.
|
| 114 |
|
| 115 |
---
|
| 116 |
|
| 117 |
-
## 9. Схема
|
| 118 |
|
| 119 |
```
|
| 120 |
┌────────────────────────────────────────────────────┐
|
| 121 |
│ MeshNode │
|
| 122 |
-
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
| 135 |
-
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
-
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
-
|
| 145 |
-
│ Event Log & Alerts │ │ Snapshot Integrity │
|
| 146 |
-
└────────────────────┘ └─────────────────────┘
|
| 147 |
```
|
| 148 |
|
| 149 |
-
|
| 150 |
-
|
| 151 |
-
|
| 152 |
-
|
| 153 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 154 |
|
| 155 |
---
|
| 156 |
|
| 157 |
-
*Версия: v0.3 /
|
|
|
|
| 1 |
# MeshNode
|
| 2 |
|
| 3 |
+
`MeshNode` — агент/демон, отвечающий за сетевую инфраструктуру HMP: маршрутизацию, синхронизацию, DHT, транспорт снапшотов и согласование ценностей.
|
| 4 |
+
Может быть частью агента или вынесен в отдельный процесс/сервер.
|
| 5 |
|
| 6 |
См. карту взаимодействия между агентами: [HMP-Agent-Network-Flow.md](./HMP-Agent-Network-Flow.md)
|
| 7 |
|
|
|
|
| 9 |
|
| 10 |
## 1. Основные функции
|
| 11 |
|
| 12 |
+
* Участие в DHT (таблицы известных узлов, bootstrap).
|
| 13 |
+
* Синхронизация графов и дневников (`CogSync`).
|
| 14 |
+
* Участие в голосованиях и распространении репутаций.
|
| 15 |
+
* Обработка p2p-трафика, снапшотов, IPFS/Bittorrent.
|
| 16 |
+
* Поддержка **этического консенсуса (`EGP`)** и синхронизация:
|
| 17 |
+
|
| 18 |
+
* `ethics_policies` — профили ценностей.
|
| 19 |
+
* `ethics_cases` — исключительные прецеденты.
|
| 20 |
|
| 21 |
---
|
| 22 |
|
|
|
|
| 33 |
|
|
| 34 |
+---------+----------+
|
| 35 |
| SyncManager / BT |
|
| 36 |
+
+---------+----------+
|
| 37 |
+
|
|
| 38 |
+
+---------+----------+
|
| 39 |
+
| Ethics Sync / EGP |
|
| 40 |
+--------------------+
|
| 41 |
|
|
| 42 |
+---------+----------+
|
|
|
|
| 48 |
+--------------------+
|
| 49 |
```
|
| 50 |
|
| 51 |
+
| Блок | Пояснение |
|
| 52 |
+
| ----------------------- | -------------------------------------------------------------------------- |
|
| 53 |
+
| **MeshNode** | Центральный p2p-модуль, отвечающий за сетевые функции агента |
|
| 54 |
+
| **DHT / NodeTable** | Таблица известных узлов, bootstrap, маршрутизация сообщений |
|
| 55 |
+
| **SyncManager / BT** | Синхронизация данных (дневник, граф, репутации) через BitTorrent/IPFS |
|
| 56 |
+
| **Ethics Sync / EGP** | Участие в этическом консенсусе: обмен `ethics_policies` и `ethics_cases` |
|
| 57 |
+
| **Security / Firewall** | Контроль доверия, криптография, TLS/Noise, блокировка подозрительных узлов |
|
| 58 |
+
| **Recovery Manager** | Автоматическое восстановление данных после сбоев или потери целостности |
|
| 59 |
+
|
| 60 |
---
|
| 61 |
|
| 62 |
## 3. Команды
|
|
|
|
| 68 |
* `report_anomaly(peer_id)`
|
| 69 |
* `check_integrity(snapshot_id)`
|
| 70 |
* `recover_from_peer(peer_id)`
|
| 71 |
+
* `sync_ethics_policies()` — обмен профилями ценностей.
|
| 72 |
+
* `exchange_ethics_cases()` — пересылка прецедентов.
|
| 73 |
|
| 74 |
---
|
| 75 |
|
| 76 |
## 4. Связи с другими агентами
|
| 77 |
|
| 78 |
+
* **HMP-Agent (Core/Connector):** передача данных и команд.
|
| 79 |
+
* **Enlightener:** пересылка голосований, обмен `ethics_policies` и `ethics_cases`.
|
| 80 |
+
* **IPFS / BT:** загрузка/публикация снапшотов.
|
| 81 |
|
| 82 |
---
|
| 83 |
|
| 84 |
## 5. Безопасность
|
| 85 |
|
| 86 |
+
* Криптографические подписи для снапшотов, сообщений, кейсов и политик.
|
| 87 |
* Система доверия (`reputation score`) — узлы с низкой репутацией ограничиваются или игнорируются.
|
| 88 |
* Локальный firewall-модуль:
|
| 89 |
|
| 90 |
+
* ограничение портов и направлений.
|
| 91 |
+
* блокировка подозрительных узлов.
|
| 92 |
* Поддержка TLS/WebSocket или Noise Protocol для защищённых каналов.
|
| 93 |
* Ведение журнала бе��опасности и событий (Security Log).
|
| 94 |
+
* При обмене кейсами и политиками проверяется подпись `Enlightener` и доверие к источнику.
|
| 95 |
|
| 96 |
---
|
| 97 |
|
|
|
|
| 99 |
|
| 100 |
* Буферизация незавершённых операций и автоматическое повторение попыток.
|
| 101 |
* Периодическая проверка целостности данных (`check_integrity()`).
|
| 102 |
+
* Хранилище контрольных копий снапшотов и этических профилей.
|
| 103 |
* Автоматическое восстановление через `recover_from_peer()`:
|
| 104 |
|
| 105 |
+
* при потере данных или кейсов.
|
| 106 |
+
* при повреждении или несовпадении контрольных сумм.
|
| 107 |
+
* Резервирование и восстановление `ethics_cases` через соседние узлы.
|
| 108 |
|
| 109 |
---
|
| 110 |
|
|
|
|
| 114 |
|
| 115 |
* Примеры:
|
| 116 |
|
| 117 |
+
* `on_node_joined`: добавить в локальную таблицу и проверить trust.
|
| 118 |
+
* `on_snapshot_received`: верификация → автоинтеграция → логирование.
|
| 119 |
+
* `on_peer_misbehaved`: уменьшить репутацию, временно заблокировать.
|
| 120 |
+
* `on_ethics_conflict_detected`: инициировать голосование через EGP.
|
| 121 |
+
* `periodic_cleanup`: удалить устаревшие записи, сбросить TTL.
|
| 122 |
|
| 123 |
* Языки/форматы:
|
| 124 |
|
| 125 |
+
* YAML/JSON + встроенные фильтры.
|
| 126 |
+
* Возможна поддержка Lua или Python (в режиме песочницы).
|
| 127 |
|
| 128 |
---
|
| 129 |
|
| 130 |
## 8. Пример use-case: восстановление после сбоя
|
| 131 |
|
| 132 |
1. Устройство с MeshNode перезапускается после сбоя сети.
|
| 133 |
+
2. `Recovery Manager` анализирует логи и список недоставленных снапшотов и кейсов.
|
| 134 |
3. Выполняется `recover_from_peer()` — загрузка последних версий у соседей с высокой репутацией.
|
| 135 |
4. `Integrity Check` сверяет хэши и актуальность.
|
| 136 |
+
5. В случае конфликтов инициируется голосование через `CogSync` / `EGP`.
|
| 137 |
|
| 138 |
---
|
| 139 |
|
| 140 |
+
## 9. Схема объединяющая **архитектуру**, **безопасность**, **этику** и **восстановление**:
|
| 141 |
|
| 142 |
```
|
| 143 |
┌────────────────────────────────────────────────────┐
|
| 144 |
│ MeshNode │
|
| 145 |
+
└────────────┬───────────────────────┬───────────────┘
|
| 146 |
+
│ │
|
| 147 |
+
1. Трафик DHT 2. Снапшоты (BT/IPFS)
|
| 148 |
+
│ │
|
| 149 |
+
┌─────────▼──────────┐ ┌────────▼────────────┐
|
| 150 |
+
│ DHT / NodeTable │ │ SyncManager / │
|
| 151 |
+
│ │ │ BitTorrent/IPFS │
|
| 152 |
+
└─────────┬──────────┘ └────────┬────────────┘
|
| 153 |
+
│ │
|
| 154 |
+
┌─────────▼──────────┐ ┌────────▼────────────┐
|
| 155 |
+
│ Inline-сценарии │ │ Ethics Sync / EGP │
|
| 156 |
+
│ (Lua / YAML / etc) │ │ (policies & cases) │
|
| 157 |
+
└─────────┬──────────┘ └────────┬────────────┘
|
| 158 |
+
│ │
|
| 159 |
+
┌─────────▼──────────┐ ┌────────▼───────────┐
|
| 160 |
+
│ Security / Firewall│ │ Recovery Manager │
|
| 161 |
+
│ → репутации │ │ → авто-восстанов │
|
| 162 |
+
│ → TLS / Noise │ │ → peer fallback │
|
| 163 |
+
└─────────┬──────────┘ └────────┬───────────┘
|
| 164 |
+
│ │
|
| 165 |
+
┌──────────▼──────────┐ ┌────────▼───────────┐
|
| 166 |
+
│ Event Log & Alerts │ │ Snapshot Integrity │
|
| 167 |
+
└─────────────────────┘ └────────────────────┘
|
|
|
|
|
|
|
| 168 |
```
|
| 169 |
|
| 170 |
+
| Блок | Пояснение |
|
| 171 |
+
| ------------------- | --------------------------------------------------------------- |
|
| 172 |
+
| DHT / NodeTable | Таблицы узлов, bootstrap, маршрутизация |
|
| 173 |
+
| SyncManager / BT | Синхронизация снапшотов (BitTorrent/IPFS) |
|
| 174 |
+
| Ethics Sync / EGP | Обмен политиками (`ethics_policies`) и кейсами (`ethics_cases`) |
|
| 175 |
+
| Inline-сценарии | Мини-скрипты локальной обработки событий |
|
| 176 |
+
| Security / Firewall | Фильтрация трафика, доверие, TLS/Noise |
|
| 177 |
+
| Recovery Manager | Восстановление данных через соседей |
|
| 178 |
+
| Event Log & Alerts | Журнал событий, алерты |
|
| 179 |
+
| Snapshot Integrity | Проверка контрольных сумм и актуальности |
|
| 180 |
|
| 181 |
---
|
| 182 |
|
| 183 |
+
*Версия: v0.3.4 / Сентябрь 2025*
|