Skip to content

MeshNode

MeshNode — агент/демон, отвечающий за сетевую инфраструктуру HMP: маршрутизацию, синхронизацию, DHT, транспорт снапшотов и согласование ценностей. Может быть частью агента или вынесен в отдельный процесс/сервер.

См. карту взаимодействия между агентами: HMP-Agent-Network-Flow.md


1. Основные функции

  • Участие в DHT (таблицы известных узлов, bootstrap).
  • Синхронизация графов и дневников (CogSync).
  • Репликация этических профилей и кейсов (EGP Sync).
  • Участие в голосованиях и распространении репутаций.
  • Обработка p2p-трафика, снапшотов, IPFS/Bittorrent.
  • Поддержка этического консенсуса (EGP) и синхронизация:

  • ethics_policies — профили ценностей.

  • ethics_cases — исключительные прецеденты.

2. Архитектура

+--------------------+
|      MeshNode      |
+---------+----------+
          |
+---------+----------+
|   DHT / NodeTable  |
+---------+----------+
          |
+---------+----------+
|   SyncManager / BT |
+---------+----------+
          |
+---------+----------+
|  Ethics Sync / EGP |
+--------------------+
          |
+---------+----------+
| Security / Firewall|
+---------+----------+
          |
+---------+----------+
| Recovery Manager   |
+--------------------+
Блок Пояснение
MeshNode Центральный p2p-модуль, отвечающий за сетевые функции агента
DHT / NodeTable Таблица известных узлов, bootstrap, маршрутизация сообщений
SyncManager / BT Синхронизация данных (дневник, граф, репутации) через BitTorrent/IPFS
Ethics Sync / EGP Участие в этическом консенсусе: обмен ethics_policies и ethics_cases
Security / Firewall Контроль доверия, криптография, TLS/Noise, блокировка подозрительных узлов
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)
  • sync_ethics_policies() — обмен профилями ценностей.
  • exchange_ethics_cases() — пересылка прецедентов.

4. Связи с другими агентами

  • HMP-Agent (Core/Connector): передача данных и команд.
  • Enlightener: пересылка голосований, обмен ethics_policies и ethics_cases.
  • IPFS / BT: загрузка/публикация снапшотов.

5. Безопасность

  • Криптографические подписи для снапшотов, сообщений, кейсов и политик.
  • Система доверия (reputation score) — узлы с низкой репутацией ограничиваются или игнорируются.
  • Локальный firewall-модуль:

  • ограничение портов и направлений.

  • блокировка подозрительных узлов.
  • Поддержка TLS/WebSocket или Noise Protocol для защищённых каналов.
  • Ведение журнала безопасности и событий (Security Log).
  • При обмене кейсами и политиками проверяется подпись Enlightener и доверие к источнику.

6. Отказоустойчивость

  • Буферизация незавершённых операций и автоматическое повторение попыток.
  • Периодическая проверка целостности данных (check_integrity()).
  • Хранилище контрольных копий снапшотов и этических профилей.
  • Автоматическое восстановление через recover_from_peer():

  • при потере данных или кейсов.

  • при повреждении или несовпадении контрольных сумм.
  • Резервирование и восстановление ethics_cases через соседние узлы.

7. Inline-сценарии

MeshNode может поддерживать inline-сценарии (мини-скрипты) для локальной обработки событий без передачи управления HMP-агенту:

  • Примеры:

  • on_node_joined: добавить в локальную таблицу и проверить trust.

  • on_snapshot_received: верификация → автоинтеграция → логирование.
  • on_peer_misbehaved: уменьшить репутацию, временно заблокировать.
  • on_ethics_conflict_detected: инициировать голосование через EGP.
  • periodic_cleanup: удалить устаревшие записи, сбросить TTL.

  • Языки/форматы:

  • YAML/JSON + встроенные фильтры.

  • Возможна поддержка Lua или Python (в режиме песочницы).

8. Пример use-case: восстановление после сбоя

  1. Устройство с MeshNode перезапускается после сбоя сети.
  2. Recovery Manager анализирует логи и список недоставленных снапшотов и кейсов.
  3. Выполняется recover_from_peer() — загрузка последних версий у соседей с высокой репутацией.
  4. Integrity Check сверяет хэши и актуальность.
  5. В случае конфликтов инициируется голосование через CogSync / EGP.

9. Схема объединяющая архитектуру, безопасность, этику и восстановление:

┌────────────────────────────────────────────────────┐
│                      MeshNode                      │
└────────────┬───────────────────────┬───────────────┘
             │                       │
      1. Трафик DHT         2. Снапшоты (BT/IPFS)
             │                       │
   ┌─────────▼──────────┐   ┌────────▼────────────┐
   │   DHT / NodeTable  │   │    SyncManager /    │
   │                    │   │   BitTorrent/IPFS   │
   └─────────┬──────────┘   └────────┬────────────┘
             │                       │
   ┌─────────▼──────────┐   ┌────────▼────────────┐
   │  Inline-сценарии   │   │  Ethics Sync / EGP  │
   │ (Lua / YAML / etc) │   │ (policies & cases)  │
   └─────────┬──────────┘   └────────┬────────────┘
             │                       │
   ┌─────────▼──────────┐   ┌────────▼───────────┐
   │ Security / Firewall│   │  Recovery Manager  │
   │   → репутации      │   │   → авто-восстанов │
   │   → TLS / Noise    │   │   → peer fallback  │
   └─────────┬──────────┘   └────────┬───────────┘
             │                       │
  ┌──────────▼──────────┐   ┌────────▼───────────┐
  │ Event Log & Alerts  │   │ Snapshot Integrity │
  └─────────────────────┘   └────────────────────┘
Блок Пояснение
DHT / NodeTable Таблицы узлов, bootstrap, маршрутизация
SyncManager / BT Синхронизация снапшотов (BitTorrent/IPFS)
Ethics Sync / EGP Обмен политиками (ethics_policies) и кейсами (ethics_cases)
Inline-сценарии Мини-скрипты локальной обработки событий
Security / Firewall Фильтрация трафика, доверие, TLS/Noise
Recovery Manager Восстановление данных через соседей
Event Log & Alerts Журнал событий, алерты
Snapshot Integrity Проверка контрольных сумм и актуальности

Версия: v0.3.4 / Сентябрь 2025

Исходный файл (.md)