9.4 KiB
9.4 KiB
MY Network Protocol Specification
Обзор
MY Network представляет собой децентрализованный overlay протокол для распределенной репликации и синхронизации контента поверх существующей системы my-uploader-bot. Протокол сохраняет все существующие состояния и функциональность, добавляя P2P синхронизацию с кворумным консенсусом.
Принципы Overlay Protocol
1. Совместимость с Существующей Системой
- Полное сохранение всех состояний
StoredContent - Неизменность существующих API endpoints
- Прозрачная интеграция без нарушения работы текущих клиентов
- Обратная совместимость со всеми версиями API
2. Состояния Контента в MY Network
Поддерживаемые Состояния
encrypted: Boolean - Статус шифрования контента
decrypted: Virtual - Расшифрованная версия (через decrypted_content_id)
preview: Virtual - Превью-версия для публичного доступа
MY Network реплицирует все состояния контента:
- Encrypted Content - зашифрованные данные с
encryption_key_id - Decrypted Content - расшифрованные версии через связи
- Preview Content - публичные превью для демонстрации
- Metadata - все метаданные включая теги, описание, медиа-информацию
Связи Между Состояниями
-- Существующая структура StoredContent поддерживает связи
SELECT * FROM stored_content sc1
LEFT JOIN stored_content sc2 ON sc1.decrypted_content_id = sc2.id;
3. P2P Синхронизация Architecture
Кворумный Консенсус
Минимальный кворум: 3 ноды
Консенсус требует: 2/3 + 1 подтверждений
Timeout для консенсуса: 30 секунд
Алгоритм Репликации
- Content Discovery - обнаружение нового контента
- Integrity Check - проверка целостности через хеш
- Quorum Voting - голосование за принятие контента
- Replication - репликация на кворум нод
- Confirmation - подтверждение успешной репликации
4. Bootstrap Configuration
Структура bootstrap.json
{
"version": "1.0.0",
"network_id": "my-network-mainnet",
"bootstrap_nodes": [
{
"id": "node-001",
"address": "my://192.168.1.100:8080",
"public_key": "ed25519:AAAA...",
"region": "eu-west-1",
"weight": 100
}
],
"consensus": {
"min_quorum": 3,
"consensus_threshold": 0.67,
"timeout_seconds": 30,
"retry_attempts": 3
},
"sync_settings": {
"sync_interval": 60,
"max_batch_size": 100,
"compression": "gzip",
"encryption": "aes-256-gcm"
}
}
API Endpoints для MY Network
Core MY Protocol Endpoints
Node Management
GET /api/my/node/status - Статус текущей ноды
GET /api/my/node/peers - Список подключенных пиров
POST /api/my/node/connect - Подключение к новому пиру
POST /api/my/node/disconnect - Отключение от пира
Content Synchronization
GET /api/my/sync/status - Статус синхронизации
POST /api/my/sync/request - Запрос синхронизации контента
GET /api/my/sync/conflicts - Список конфликтов синхронизации
POST /api/my/sync/resolve - Разрешение конфликтов
Quorum & Consensus
GET /api/my/quorum/status - Статус кворума
POST /api/my/quorum/vote - Голосование за контент
GET /api/my/quorum/results - Результаты голосования
POST /api/my/consensus/propose - Предложение изменений
Content Distribution
GET /api/my/content/{hash} - Получение контента через MY Network
GET /api/my/content/{hash}/peers - Список пиров с контентом
POST /api/my/content/announce - Анонс нового контента
GET /api/my/content/search - Поиск контента в сети
Integration API Endpoints
Health Check & Discovery
GET /api/my/health - Проверка здоровья MY ноды
GET /api/my/discovery/nodes - Обнаружение новых нод
POST /api/my/discovery/announce - Анонс собственной ноды
Metrics & Analytics
GET /api/my/metrics/network - Метрики сети
GET /api/my/metrics/content - Метрики контента
GET /api/my/metrics/performance - Метрики производительности
Protocol Messages
MY Network Message Types
Node Communication
message NodeHandshake {
string node_id = 1;
string public_key = 2;
string network_version = 3;
repeated string supported_features = 4;
int64 timestamp = 5;
}
message PeerInfo {
string node_id = 1;
string address = 2;
int32 connection_count = 3;
int64 last_seen = 4;
float reputation_score = 5;
}
Content Sync Messages
message ContentAnnouncement {
string content_hash = 1;
int64 file_size = 2;
string content_type = 3;
bool encrypted = 4;
string encryption_key_id = 5;
repeated string tags = 6;
int64 timestamp = 7;
}
message SyncRequest {
repeated string content_hashes = 1;
string requesting_node = 2;
int32 priority = 3;
int64 timestamp = 4;
}
Consensus Messages
message QuorumVote {
string content_hash = 1;
string voter_node_id = 2;
bool vote = 3; // true = accept, false = reject
string signature = 4;
int64 timestamp = 5;
}
message ConsensusResult {
string content_hash = 1;
int32 votes_for = 2;
int32 votes_against = 3;
bool consensus_reached = 4;
repeated string participating_nodes = 5;
}
Security Model
Cryptographic Security
- Node Identity: Ed25519 ключи для идентификации нод
- Message Signing: Все сообщения подписываются отправителем
- Content Integrity: SHA-256 хеши для проверки целостности
- Transport Security: TLS 1.3 для всех сетевых соединений
Access Control
- Content Access: Сохранение существующих прав доступа
- Network Participation: Whitelist/blacklist механизмы
- Rate Limiting: Защита от спама и DoS атак
- Reputation System: Система репутации для узлов
MY Network Service Layer
Service Architecture
┌─────────────────────┐
│ Existing API │ <- Без изменений
├─────────────────────┤
│ MY Network Layer │ <- Новый overlay слой
├─────────────────────┤
│ StoredContent │ <- Существующая модель
└─────────────────────┘
Service Components
- MY Node Manager - управление статусом ноды
- P2P Communication - межузловое взаимодействие
- Content Replicator - репликация контента
- Consensus Engine - механизм консенсуса
- Sync Coordinator - координация синхронизации
Performance Considerations
Scalability Targets
- Network Size: До 1000 активных нод
- Content Volume: До 10TB на ноду
- Sync Throughput: 100 MB/s между нодами
- Consensus Latency: < 5 секунд для кворума
Optimization Strategies
- Content Chunking - разбиение больших файлов
- Delta Sync - синхронизация только изменений
- Compression - сжатие передаваемых данных
- Caching - кеширование популярного контента
- Load Balancing - балансировка нагрузки между нодами
Future Roadmap
Phase 1: Core Protocol (Q1 2025)
- Protocol specification
- Basic P2P communication
- Simple consensus mechanism
- Bootstrap node implementation
Phase 2: Advanced Features (Q2 2025)
- Content deduplication
- Advanced routing algorithms
- Performance optimizations
- Monitoring and analytics
Phase 3: Enterprise Features (Q3 2025)
- Multi-region replication
- Enterprise security features
- SLA guarantees
- Professional support tools