File size: 7,867 Bytes
2c3dd0c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
## 📄 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*