Files
Phantom/release/README-Docker.md

359 lines
11 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Phantom Protocol - Docker Развертывание
## 🚀 Быстрый старт
Для быстрого запуска сети Phantom Protocol выполните:
```bash
# Клонирование и переход в директорию
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 | - | Утилиты тестирования |
## 🛠️ Управление сетью
### Основные команды
```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 для подробностей.