# Phantom Protocol - Docker Развертывание ## 🚀 Быстрый старт Для быстрого запуска сети Phantom Protocol выполните: ```bash # Клонирование и переход в директорию git clone cd phantom-modernized # Быстрый старт (сборка + запуск + мониторинг) make -f Makefile.docker quickstart ``` Через несколько минут сеть будет готова к работе! ## 📋 Требования ### Системные требования - **Docker**: версия 20.10 или выше - **Docker Compose**: версия 2.0 или выше - **Операционная система**: Linux, macOS, Windows (с WSL2) - **RAM**: минимум 2GB, рекомендуется 4GB - **Дисковое пространство**: минимум 5GB свободного места ### Сетевые требования - Доступные порты: 8080-8090 - Поддержка TUN/TAP интерфейсов (для полной функциональности) ## 🏗️ Архитектура развертывания ### Компоненты сети ``` ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Bootstrap │ │ Node 2 │ │ Node 3 │ │ 172.20.0.10 │◄──►│ 172.20.0.11 │◄──►│ 172.20.0.12 │ │ Port: 8080 │ │ Port: 8082 │ │ Port: 8084 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ▲ ▲ ▲ │ │ │ ▼ ▼ ▼ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ Node 4 │ │ Node 5 │ │ Мониторинг │ │ 172.20.0.13 │ │ 172.20.0.14 │ │ 172.20.0.100 │ │ Port: 8086 │ │ Port: 8088 │ │ Port: 8090 │ └─────────────────┘ └─────────────────┘ └─────────────────┘ ``` ### Сервисы | Сервис | IP адрес | Внешний порт | Описание | |--------|----------|--------------|----------| | phantom-bootstrap | 172.20.0.10 | 8080 | Главный узел сети | | phantom-node2 | 172.20.0.11 | 8082 | Узел сети #2 | | phantom-node3 | 172.20.0.12 | 8084 | Узел сети #3 | | phantom-node4 | 172.20.0.13 | 8086 | Узел сети #4 | | phantom-node5 | 172.20.0.14 | 8088 | Узел сети #5 | | phantom-monitor | 172.20.0.100 | 8090 | Веб-мониторинг | | phantom-tester | 172.20.0.200 | - | Утилиты тестирования | ## 🛠️ Управление сетью ### Основные команды ```bash # Показать справку make -f Makefile.docker help # Собрать образы make -f Makefile.docker build # Запустить сеть make -f Makefile.docker up # Остановить сеть make -f Makefile.docker down # Показать статус make -f Makefile.docker status # Просмотр логов make -f Makefile.docker logs # Тестирование сети make -f Makefile.docker test ``` ### Пошаговое развертывание 1. **Сборка образов** ```bash make -f Makefile.docker build ``` 2. **Запуск bootstrap узла** ```bash make -f Makefile.docker up-bootstrap ``` 3. **Запуск всей сети** ```bash make -f Makefile.docker up ``` 4. **Проверка статуса** ```bash make -f Makefile.docker status ``` ## 📊 Мониторинг и диагностика ### Веб-интерфейс мониторинга После запуска сети откройте в браузере: ``` http://localhost:8090 ``` Веб-интерфейс предоставляет: - Статус всех узлов в реальном времени - Топологию сети - Системные логи - Метрики производительности ### Просмотр логов ```bash # Логи всех контейнеров make -f Makefile.docker logs # Логи конкретного узла make -f Makefile.docker logs-node NODE=phantom-bootstrap # Логи в файлах tail -f logs/phantom-bootstrap.log ``` ### Проверка здоровья ```bash # Автоматическая проверка всех узлов make -f Makefile.docker health # Подробная диагностика make -f Makefile.docker test ``` ## 🧪 Тестирование ### Автоматические тесты ```bash # Запуск полного набора тестов make -f Makefile.docker test ``` Тесты включают: - Проверку подключения к узлам - Тестирование Kademlia DHT - Измерение латентности - Проверку построения анонимных путей - Тестирование анонимности ### Ручное тестирование ```bash # Подключение к тестовому контейнеру make -f Makefile.docker shell-tester # Внутри контейнера ./test-scripts/test-network.sh ``` ## ⚙️ Конфигурация ### Переменные окружения Основные переменные для настройки узлов: | Переменная | Описание | Значение по умолчанию | |------------|----------|-----------------------| | `PHANTOM_NODE_NAME` | Имя узла | auto-generated | | `PHANTOM_PORT` | Основной порт | 8080 | | `PHANTOM_KAD_PORT` | Порт Kademlia DHT | 8081 | | `PHANTOM_LOG_LEVEL` | Уровень логирования | INFO | | `PHANTOM_NXNODES` | Количество X-узлов | 3 | | `PHANTOM_NYNODES` | Количество Y-узлов | 3 | | `PHANTOM_NKEYS` | Количество ключей | 3 | | `PHANTOM_BOOTSTRAP_NODES` | Начальные узлы | auto | ### Кастомизация конфигурации 1. **Изменение docker-compose.yml** ```yaml environment: - PHANTOM_LOG_LEVEL=DEBUG - PHANTOM_NXNODES=5 ``` 2. **Создание .env файла** ```bash echo "PHANTOM_LOG_LEVEL=DEBUG" > .env ``` 3. **Монтирование конфигурационных файлов** ```yaml volumes: - ./custom-config:/home/phantom/config ``` ## 🔧 Устранение неполадок ### Частые проблемы 1. **Контейнеры не запускаются** ```bash # Проверка логов docker-compose logs phantom-bootstrap # Проверка ресурсов docker system df ``` 2. **Узлы не подключаются друг к другу** ```bash # Проверка сети docker network ls docker network inspect phantom-protocol_phantom-network # Тест подключения docker exec phantom-node2 ping phantom-bootstrap ``` 3. **Проблемы с TUN интерфейсом** ```bash # Проверка модуля TUN lsmod | grep tun # Загрузка модуля sudo modprobe tun # Запуск с привилегиями docker-compose up --privileged ``` 4. **Высокое использование ресурсов** ```bash # Мониторинг ресурсов docker stats # Ограничение ресурсов в docker-compose.yml deploy: resources: limits: memory: 512M cpus: '0.5' ``` ### Диагностические команды ```bash # Проверка состояния Docker docker version docker-compose version # Проверка образов docker images | grep phantom # Проверка сети docker network inspect phantom-protocol_phantom-network # Проверка томов docker volume ls | grep phantom # Очистка системы docker system prune -f ``` ## 🔄 Обслуживание ### Резервное копирование ```bash # Создание резервной копии make -f Makefile.docker backup # Список резервных копий ls -la backups/ ``` ### Восстановление ```bash # Восстановление из резервной копии make -f Makefile.docker restore BACKUP=phantom-backup-20250123_143000.tar.gz ``` ### Обновление ```bash # Обновление образов make -f Makefile.docker update # Ручное обновление docker-compose pull make -f Makefile.docker restart ``` ## 🔒 Безопасность ### Рекомендации по безопасности 1. **Изоляция сети** - Используйте отдельную Docker сеть - Ограничьте доступ к портам 2. **Управление ключами** - Регулярно обновляйте криптографические ключи - Используйте безопасное хранение ключей 3. **Мониторинг** - Отслеживайте подозрительную активность - Настройте алерты для критических событий 4. **Обновления** - Регулярно обновляйте образы - Следите за уязвимостями ### Настройка firewall ```bash # Разрешить только необходимые порты sudo ufw allow 8080:8090/tcp sudo ufw enable ``` ## 📚 Дополнительные ресурсы - [Документация Phantom Protocol](./docs/) - [Архитектура системы](./phantom_architecture.md) - [Руководство по установке](./phantom_installation_guide_ru.md) - [API документация](./docs/api.md) ## 🤝 Поддержка При возникновении проблем: 1. Проверьте [раздел устранения неполадок](#-устранение-неполадок) 2. Изучите логи: `make -f Makefile.docker logs` 3. Запустите диагностику: `make -f Makefile.docker test` 4. Создайте issue с подробным описанием проблемы ## 📄 Лицензия Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.