11 KiB
11 KiB
Phantom Protocol - Docker Развертывание
🚀 Быстрый старт
Для быстрого запуска сети Phantom Protocol выполните:
# Клонирование и переход в директорию
git clone <repository-url>
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 | - | Утилиты тестирования |
🛠️ Управление сетью
Основные команды
# Показать справку
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
Пошаговое развертывание
-
Сборка образов
make -f Makefile.docker build -
Запуск bootstrap узла
make -f Makefile.docker up-bootstrap -
Запуск всей сети
make -f Makefile.docker up -
Проверка статуса
make -f Makefile.docker status
📊 Мониторинг и диагностика
Веб-интерфейс мониторинга
После запуска сети откройте в браузере:
http://localhost:8090
Веб-интерфейс предоставляет:
- Статус всех узлов в реальном времени
- Топологию сети
- Системные логи
- Метрики производительности
Просмотр логов
# Логи всех контейнеров
make -f Makefile.docker logs
# Логи конкретного узла
make -f Makefile.docker logs-node NODE=phantom-bootstrap
# Логи в файлах
tail -f logs/phantom-bootstrap.log
Проверка здоровья
# Автоматическая проверка всех узлов
make -f Makefile.docker health
# Подробная диагностика
make -f Makefile.docker test
🧪 Тестирование
Автоматические тесты
# Запуск полного набора тестов
make -f Makefile.docker test
Тесты включают:
- Проверку подключения к узлам
- Тестирование Kademlia DHT
- Измерение латентности
- Проверку построения анонимных путей
- Тестирование анонимности
Ручное тестирование
# Подключение к тестовому контейнеру
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 |
Кастомизация конфигурации
-
Изменение docker-compose.yml
environment: - PHANTOM_LOG_LEVEL=DEBUG - PHANTOM_NXNODES=5 -
Создание .env файла
echo "PHANTOM_LOG_LEVEL=DEBUG" > .env -
Монтирование конфигурационных файлов
volumes: - ./custom-config:/home/phantom/config
🔧 Устранение неполадок
Частые проблемы
-
Контейнеры не запускаются
# Проверка логов docker-compose logs phantom-bootstrap # Проверка ресурсов docker system df -
Узлы не подключаются друг к другу
# Проверка сети docker network ls docker network inspect phantom-protocol_phantom-network # Тест подключения docker exec phantom-node2 ping phantom-bootstrap -
Проблемы с TUN интерфейсом
# Проверка модуля TUN lsmod | grep tun # Загрузка модуля sudo modprobe tun # Запуск с привилегиями docker-compose up --privileged -
Высокое использование ресурсов
# Мониторинг ресурсов docker stats # Ограничение ресурсов в docker-compose.yml deploy: resources: limits: memory: 512M cpus: '0.5'
Диагностические команды
# Проверка состояния 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
🔄 Обслуживание
Резервное копирование
# Создание резервной копии
make -f Makefile.docker backup
# Список резервных копий
ls -la backups/
Восстановление
# Восстановление из резервной копии
make -f Makefile.docker restore BACKUP=phantom-backup-20250123_143000.tar.gz
Обновление
# Обновление образов
make -f Makefile.docker update
# Ручное обновление
docker-compose pull
make -f Makefile.docker restart
🔒 Безопасность
Рекомендации по безопасности
-
Изоляция сети
- Используйте отдельную Docker сеть
- Ограничьте доступ к портам
-
Управление ключами
- Регулярно обновляйте криптографические ключи
- Используйте безопасное хранение ключей
-
Мониторинг
- Отслеживайте подозрительную активность
- Настройте алерты для критических событий
-
Обновления
- Регулярно обновляйте образы
- Следите за уязвимостями
Настройка firewall
# Разрешить только необходимые порты
sudo ufw allow 8080:8090/tcp
sudo ufw enable
📚 Дополнительные ресурсы
🤝 Поддержка
При возникновении проблем:
- Проверьте раздел устранения неполадок
- Изучите логи:
make -f Makefile.docker logs - Запустите диагностику:
make -f Makefile.docker test - Создайте issue с подробным описанием проблемы
📄 Лицензия
Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.