359 lines
11 KiB
Markdown
359 lines
11 KiB
Markdown
# 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 для подробностей.
|
||
|