Files
Phantom/release/README-Docker.md

11 KiB
Raw Blame History

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

Пошаговое развертывание

  1. Сборка образов

    make -f Makefile.docker build
    
  2. Запуск bootstrap узла

    make -f Makefile.docker up-bootstrap
    
  3. Запуск всей сети

    make -f Makefile.docker up
    
  4. Проверка статуса

    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

Кастомизация конфигурации

  1. Изменение docker-compose.yml

    environment:
      - PHANTOM_LOG_LEVEL=DEBUG
      - PHANTOM_NXNODES=5
    
  2. Создание .env файла

    echo "PHANTOM_LOG_LEVEL=DEBUG" > .env
    
  3. Монтирование конфигурационных файлов

    volumes:
      - ./custom-config:/home/phantom/config
    

🔧 Устранение неполадок

Частые проблемы

  1. Контейнеры не запускаются

    # Проверка логов
    docker-compose logs phantom-bootstrap
    
    # Проверка ресурсов
    docker system df
    
  2. Узлы не подключаются друг к другу

    # Проверка сети
    docker network ls
    docker network inspect phantom-protocol_phantom-network
    
    # Тест подключения
    docker exec phantom-node2 ping phantom-bootstrap
    
  3. Проблемы с TUN интерфейсом

    # Проверка модуля TUN
    lsmod | grep tun
    
    # Загрузка модуля
    sudo modprobe tun
    
    # Запуск с привилегиями
    docker-compose up --privileged
    
  4. Высокое использование ресурсов

    # Мониторинг ресурсов
    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

🔒 Безопасность

Рекомендации по безопасности

  1. Изоляция сети

    • Используйте отдельную Docker сеть
    • Ограничьте доступ к портам
  2. Управление ключами

    • Регулярно обновляйте криптографические ключи
    • Используйте безопасное хранение ключей
  3. Мониторинг

    • Отслеживайте подозрительную активность
    • Настройте алерты для критических событий
  4. Обновления

    • Регулярно обновляйте образы
    • Следите за уязвимостями

Настройка firewall

# Разрешить только необходимые порты
sudo ufw allow 8080:8090/tcp
sudo ufw enable

📚 Дополнительные ресурсы

🤝 Поддержка

При возникновении проблем:

  1. Проверьте раздел устранения неполадок
  2. Изучите логи: make -f Makefile.docker logs
  3. Запустите диагностику: make -f Makefile.docker test
  4. Создайте issue с подробным описанием проблемы

📄 Лицензия

Этот проект распространяется под лицензией MIT. См. файл LICENSE для подробностей.