Files
Phantom/workspace/TASK_TRACKER.md

20 KiB
Raw Blame History

Phantom Protocol: Трекер Задач Разработки

Дата создания: 22 ноября 2025
Статус проекта: В разработке (30% готовности)
Цель: Достичь 100% соответствия документации


📊 Общий Прогресс

Фаза 0: Критическое исправление    [ ] 0/1   (0%)
Фаза 1: Hidden Services            [ ] 0/4   (0%)
Фаза 2: Exit Nodes                 [ ] 0/3   (0%)
Фаза 3: TLD Система                [ ] 0/3   (0%)
Фаза 4: Финальные доработки        [ ] 0/3   (0%)

ОБЩИЙ ПРОГРЕСС: 0/14 задач (0%)

🚨 ФАЗА 0: Критическое Исправление

Приоритет: 🚨 КРИТИЧЕСКИЙ
Срок: 1 неделя
Статус: Не начато

Задача 0.1: Исправить SOCKS5 Fallback

Файл: examples/socks5-proxy.py
Ответственный: [не назначен]
Срок: 3-5 дней

Подзадачи:

  • 0.1.1 Открыть файл examples/socks5-proxy.py
  • 0.1.2 Найти функцию connect() в классе PhantomConnection
  • 0.1.3 Удалить строки 110-115 (fallback механизм)
    # УДАЛИТЬ:
    logger.info(f"Fallback: прямое подключение к {target_host}:{target_port}")
    self.socket.close()
    self.socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    self.socket.connect((target_host, target_port))
    
  • 0.1.4 Реализовать fail-secure поведение
    # ДОБАВИТЬ:
    logger.error(f"❌ Не удалось подключиться к Phantom сети: {e}")
    logger.error("🔒 Соединение прервано для обеспечения безопасности")
    self._send_error_response(SOCKS5_HOST_UNREACHABLE)
    return False
    
  • 0.1.5 Обновить документацию user-guide-complete-ru.md
  • 0.1.6 Добавить раздел о fail-secure поведении
  • 0.1.7 Протестировать: отключить сеть Phantom и убедиться, что прокси возвращает ошибку
  • 0.1.8 Создать коммит с описанием: "fix(security): Remove insecure fallback in SOCKS5 proxy"

Критерий завершения:

  • При ошибке подключения прокси НЕ устанавливает прямое соединение
  • В логах четко указано, что соединение прервано
  • Браузер получает ошибку "Host unreachable"

🔴 ФАЗА 1: Hidden Services

Приоритет: 🔴 Высокий
Срок: 4 месяца
Статус: Не начато

Задача 1.1: Спроектировать Архитектуру

Ответственный: [не назначен]
Срок: 1-2 недели

Подзадачи:

  • 1.1.1 Изучить архитектуру Tor Hidden Services
  • 1.1.2 Проанализировать существующий phantom_hidden_service.h
  • 1.1.3 Создать документ docs/hidden-services-design.md
  • 1.1.4 Описать протокол публикации дескриптора в DHT
  • 1.1.5 Описать протокол установки соединения через rendezvous point
  • 1.1.6 Определить форматы криптографических сообщений
  • 1.1.7 Создать диаграммы последовательности (sequence diagrams)
  • 1.1.8 Провести ревью дизайна с командой

Критерий завершения:

  • Документ hidden-services-design.md создан и одобрен
  • Все участники команды понимают архитектуру

Задача 1.2: Реализовать phantom_hidden_service.c

Файл: src/phantom_hidden_service.c
Ответственный: [не назначен]
Срок: 6-8 недель

Подзадачи:

  • 1.2.1 Создать файл src/phantom_hidden_service.c
  • 1.2.2 Реализовать phantom_hs_init()
    • Генерация Ed25519 keypair
    • Вычисление service_id = SHA256(public_key)
    • Сохранение ключей в ~/.phantom/hidden_services/
  • 1.2.3 Реализовать phantom_hs_create_descriptor()
    • Формирование дескриптора с introduction points
    • Шифрование дескриптора
    • Подпись приватным ключом
  • 1.2.4 Реализовать phantom_hs_publish()
    • Интеграция с Kademlia DHT
    • Публикация дескриптора по ключу service_id
    • Реализация периодического обновления (каждые 24 часа)
  • 1.2.5 Реализовать phantom_hs_lookup()
    • Поиск дескриптора в DHT
    • Расшифровка дескриптора
    • Проверка подписи
  • 1.2.6 Реализовать phantom_hs_connect()
    • Получение дескриптора через phantom_hs_lookup()
    • Выбор introduction point
    • Построение туннеля к introduction point
    • Согласование rendezvous point
    • Установка end-to-end зашифрованного соединения
  • 1.2.7 Написать unit-тесты для каждой функции
  • 1.2.8 Обновить Makefile для компиляции нового файла

Критерий завершения:

  • Файл компилируется без ошибок
  • Все unit-тесты проходят
  • Code coverage > 80%

Задача 1.3: Создать CLI-инструмент

Файл: tools/phantom-hidden-service.c
Ответственный: [не назначен]
Срок: 2-3 недели

Подзадачи:

  • 1.3.1 Создать файл tools/phantom-hidden-service.c
  • 1.3.2 Реализовать парсинг аргументов командной строки (getopt)
  • 1.3.3 Реализовать команду --create --name <name>
    • Вызов phantom_hs_init()
    • Вывод service_id пользователю
  • 1.3.4 Реализовать команду --bind <service_id>:port --target host:port
    • Запуск сервера, слушающего входящие соединения
    • Проксирование на локальный сервис
  • 1.3.5 Реализовать команду --list
    • Чтение директории ~/.phantom/hidden_services/
    • Вывод списка всех сервисов
  • 1.3.6 Реализовать команду --delete <service_id>
  • 1.3.7 Добавить в Makefile цель для компиляции
  • 1.3.8 Написать man-страницу или --help текст

Критерий завершения:

  • Команда phantom-hidden-service --create работает
  • Команда phantom-hidden-service --bind успешно привязывает сервис
  • Все команды из документации реализованы

Задача 1.4: Написать Функциональный Тест

Файл: tests/test-hidden-services.sh
Ответственный: [не назначен]
Срок: 2-3 недели

Подзадачи:

  • 1.4.1 Создать директорию tests/
  • 1.4.2 Создать скрипт tests/test-hidden-services.sh
  • 1.4.3 Реализовать автоматический запуск локальной Phantom сети (5 узлов)
  • 1.4.4 Создать тестовый файл test.txt с известным содержимым
  • 1.4.5 Запустить простой веб-сервер: python3 -m http.server 8080
  • 1.4.6 Создать hidden service: phantom-hidden-service --create --name test
  • 1.4.7 Привязать к веб-серверу: phantom-hidden-service --bind <service_id>:80 --target localhost:8080
  • 1.4.8 Подождать публикации дескриптора (5-10 секунд)
  • 1.4.9 Запустить клиент, который скачивает test.txt через .phantom адрес
  • 1.4.10 Сравнить скачанный файл с оригиналом: diff test.txt downloaded.txt
  • 1.4.11 Интегрировать тест в CI/CD

Критерий завершения:

  • Тест проходит от начала до конца автоматически
  • Скачанный файл идентичен оригиналу
  • Тест включен в CI/CD pipeline

🔴 ФАЗА 2: Exit Nodes

Приоритет: 🔴 Высокий
Срок: 3 месяца
Статус: Не начато

Задача 2.1: Спроектировать Архитектуру

Ответственный: [не назначен]
Срок: 1-2 недели

Подзадачи:

  • 2.1.1 Изучить архитектуру Tor Exit Nodes
  • 2.1.2 Проанализировать phantom_exit_node.h
  • 2.1.3 Создать документ docs/exit-nodes-design.md
  • 2.1.4 Описать протокол регистрации exit node в DHT
  • 2.1.5 Описать формат Exit Policy (whitelist/blacklist портов и IP)
  • 2.1.6 Спроектировать механизм проксирования трафика
  • 2.1.7 Провести ревью дизайна

Критерий завершения:

  • Документ exit-nodes-design.md создан и одобрен

Задача 2.2: Реализовать phantom_exit_node.c

Файл: src/phantom_exit_node.c
Ответственный: [не назначен]
Срок: 4-6 недель

Подзадачи:

  • 2.2.1 Создать файл src/phantom_exit_node.c
  • 2.2.2 Реализовать phantom_exit_init()
    • Загрузка конфигурации из файла
    • Парсинг Exit Policy
    • Регистрация в DHT как exit node
  • 2.2.3 Реализовать phantom_exit_check_policy()
    • Проверка target_host и target_port по whitelist/blacklist
    • Возврат ALLOWED/DENIED
  • 2.2.4 Реализовать phantom_exit_handle_request()
    • Прием запроса из туннеля Phantom
    • Проверка по Exit Policy
    • Установка реального TCP-соединения с target
    • Проксирование данных в обе стороны
    • Обработка ошибок и таймаутов
  • 2.2.5 Написать unit-тесты
  • 2.2.6 Обновить Makefile

Критерий завершения:

  • Exit node успешно проксирует трафик
  • Exit Policy работает корректно
  • Unit-тесты проходят

Задача 2.3: Интегрировать SOCKS5 с Phantom

Файл: tools/phantom-socks5-proxy.c
Ответственный: [не назначен]
Срок: 3-4 недели

Подзадачи:

  • 2.3.1 Создать файл tools/phantom-socks5-proxy.c (или доработать Python-версию)
  • 2.3.2 Реализовать поиск exit node в DHT
    • Запрос к DHT: "найти узлы с флагом EXIT_NODE"
    • Выбор случайного exit node из списка
  • 2.3.3 Реализовать построение туннеля к exit node
    • Использование функций из libphantom.so
    • Построение туннеля через N хопов
  • 2.3.4 Реализовать отправку запроса на подключение
    • Формирование сообщения CONNECT target_host:target_port
    • Отправка через туннель к exit node
  • 2.3.5 Реализовать проксирование данных
    • Клиент <-> SOCKS5 прокси <-> туннель Phantom <-> exit node <-> target
  • 2.3.6 Удалить весь fallback-код
  • 2.3.7 Протестировать с реальными сайтами

Критерий завершения:

  • curl --socks5 localhost:8080 https://ipinfo.io показывает IP exit node
  • Трафик проходит через Phantom сеть
  • Нет прямых соединений

🟡 ФАЗА 3: TLD Система

Приоритет: 🟡 Средний
Срок: 6 месяцев
Статус: Не начато

Задача 3.1: Завершить TODO и Интегрировать с DHT

Ответственный: [не назначен]
Срок: 8-10 недель

Подзадачи:

  • 3.1.1 Найти все TODO: grep -rn "TODO" src/phantom_dns*.c src/phantom_domain_registry.c src/phantom_consensus.c
  • 3.1.2 Для каждого TODO создать отдельную подзадачу
  • 3.1.3 Реализовать хранение DNS-записей в DHT
    int phantom_dns_dht_store(const char *domain, const struct phantom_dns_record *record)
    
  • 3.1.4 Реализовать поиск DNS-записей в DHT
    struct phantom_dns_record* phantom_dns_dht_lookup(const char *domain, uint16_t type)
    
  • 3.1.5 Реализовать кэширование DNS-записей
  • 3.1.6 Написать unit-тесты для интеграции с DHT
  • 3.1.7 Удалить все пометки TODO

Критерий завершения:

  • grep -r "TODO" src/phantom_dns*.c не находит пометок
  • DNS-резолвер успешно находит записи через DHT
  • Кэширование работает

Задача 3.2: Реализовать Консенсус

Ответственный: [не назначен]
Срок: 8-12 недель

Подзадачи:

  • 3.2.1 Выбрать алгоритм консенсуса (Raft / PBFT / PoS)
  • 3.2.2 Создать документ с описанием выбранного алгоритма
  • 3.2.3 Реализовать механизм голосования валидаторов
  • 3.2.4 Реализовать достижение кворума (>2/3 голосов)
  • 3.2.5 Реализовать разрешение конфликтов (fork resolution)
  • 3.2.6 Написать тесты на Byzantine failures
  • 3.2.7 Протестировать с 10+ валидаторами

Критерий завершения:

  • Валидаторы достигают консенсуса по DNS-обновлениям
  • Система устойчива к отказу 1/3 валидаторов
  • Конфликты разрешаются корректно

Задача 3.3: Оптимизация и Шардинг

Ответственный: [не назначен]
Срок: 6-8 недель

Подзадачи:

  • 3.3.1 Профилирование текущей производительности
  • 3.3.2 Оптимизация узких мест
  • 3.3.3 Реализация шардинга доменного пространства
  • 3.3.4 Создание генератора нагрузки для тестирования
  • 3.3.5 Достижение 100,000+ QPS
  • 3.3.6 Тестирование с миллионами доменов

Критерий завершения:

  • Система обрабатывает 100,000+ запросов/сек
  • Латентность < 50ms (p99)
  • Масштабируется горизонтально

🟢 ФАЗА 4: Финальные Доработки

Приоритет: 🟢 Низкий
Срок: 4 месяца
Статус: Не начато

Задача 4.1: Реализовать Недостающие Примеры

Ответственный: [не назначен]
Срок: 8-10 недель

Подзадачи:

  • 4.1.1 Anonymous File Storage (2 недели)
  • 4.1.2 Encrypted Messenger (2 недели)
  • 4.1.3 TCP Tunnels (1 неделя)
  • 4.1.4 Hidden Websites (2 недели)
  • 4.1.5 Custom TLD (1 неделя)
  • 4.1.6 VPN через Phantom (2 недели)

Критерий завершения:

  • Все 8 примеров реализованы и работают
  • Примеры используют реальную сеть Phantom

Задача 4.2: Создать Функциональные Тесты

Ответственный: [не назначен]
Срок: 4-6 недель

Подзадачи:

  • 4.2.1 Доработать test-real-scenarios.sh
  • 4.2.2 Добавить end-to-end тесты для каждого примера
  • 4.2.3 Добавить тесты на устойчивость к отказам
  • 4.2.4 Интегрировать в CI/CD
  • 4.2.5 Достичь code coverage > 70%

Критерий завершения:

  • Все тесты проходят автоматически
  • Coverage > 70%

Задача 4.3: Обновить Документацию

Ответственный: [не назначен]
Срок: 2-3 недели

Подзадачи:

  • 4.3.1 Провести ревизию всей документации
  • 4.3.2 Разделить на "Реализовано" / "В разработке" / "Планируется"
  • 4.3.3 Убрать вводящие в заблуждение заявления
  • 4.3.4 Добавить предупреждения ⚠️ для незавершенных функций
  • 4.3.5 Завершить русификацию комментариев в коде
  • 4.3.6 Создать публичный roadmap

Критерий завершения:

  • Документация на 100% соответствует коду
  • Нет вводящих в заблуждение заявлений
  • Roadmap опубликован

📈 Метрики Прогресса

Обновляйте эту секцию по мере выполнения задач:

Последнее обновление: [ДАТА]

Фаза 0: [█░░░░░░░░░] 0%  (0/8 подзадач)
Фаза 1: [░░░░░░░░░░] 0%  (0/32 подзадач)
Фаза 2: [░░░░░░░░░░] 0%  (0/21 подзадач)
Фаза 3: [░░░░░░░░░░] 0%  (0/20 подзадач)
Фаза 4: [░░░░░░░░░░] 0%  (0/17 подзадач)

ОБЩИЙ ПРОГРЕСС: [░░░░░░░░░░] 0% (0/98 подзадач)

🎯 Следующие Шаги

Немедленно:

  1. Назначить ответственных за каждую фазу
  2. Начать с Фазы 0 (критическое исправление)
  3. Создать GitHub Issues для каждой задачи

На этой неделе:

  1. Завершить Фазу 0
  2. Начать проектирование Hidden Services (Задача 1.1)

В этом месяце:

  1. Завершить проектирование Hidden Services и Exit Nodes
  2. Начать реализацию phantom_hidden_service.c

Автор: Manus AI
Лицензия: MIT