Files
Phantom/workspace/PRACTICAL_DEVELOPMENT_CHECKLIST.md

13 KiB
Raw Permalink Blame History

Практический Чек-лист Разработки Phantom Protocol

Цель: Предоставить пошаговый план действий, по которому можно последовательно двигаться для реализации заявленного функционала. Отмечайте пункты по мере их выполнения.


🚨 Фаза 0: Критическое Исправление (Срок: ~1 неделя)

Цель: Устранить уязвимость, создающую ложное чувство безопасности.

  • Задача 0.1: Исправить SOCKS5 прокси
    • Действие: Открыть файл examples/socks5-proxy.py.
    • Действие: Найти блок try...except в функции connect.
    • Действие: Полностью удалить fallback механизм, который устанавливает прямое соединение (self.socket.connect((target_host, target_port))).
    • Действие: Вместо него реализовать безопасное завершение работы (fail-secure). При ошибке подключения к Phantom-узлу, прокси должен вернуть клиенту ошибку SOCKS5_HOST_UNREACHABLE и закрыть соединение.
    • Действие: Добавить в лог четкое сообщение об ошибке и прерывании соединения для обеспечения безопасности.
    • Критерий завершения: Принудительное отключение от сети Phantom приводит к ошибке в браузере, а не к прямому подключению. В логах прокси появляется сообщение об ошибке.

🔴 Фаза 1: Реализация Hidden Services (Срок: ~4 месяца)

Цель: Создать с нуля работающий функционал .phantom сайтов.

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

    • Действие: Проанализировать phantom_hidden_service.h и архитектуру Tor Hidden Services.
    • Действие: Разработать детальную схему взаимодействия: клиент -> DHT -> точка встречи (rendezvous point) -> скрытый сервис.
    • Действие: Определить форматы криптографических сообщений для каждого этапа.
    • Критерий завершения: Создан документ с детальным техническим дизайном Hidden Services.
  • Задача 1.2: Написать код реализации (phantom_hidden_service.c)

    • Действие: Создать файл src/phantom_hidden_service.c.
    • Действие: Реализовать функцию phantom_hs_init(): генерация ключевой пары Ed25519 для сервиса и вычисление его ID.
    • Действие: Реализовать функцию phantom_hs_publish(): создание зашифрованного дескриптора (содержащего адреса точек встречи) и его публикация в Kademlia DHT.
    • Действие: Реализовать функцию phantom_hs_lookup(): поиск и расшифровка дескриптора в DHT по ID сервиса.
    • Действие: Реализовать функцию phantom_hs_connect(): полный цикл установки соединения через точку встречи.
    • Критерий завершения: Все функции из phantom_hidden_service.h реализованы. Юнит-тесты для каждой функции проходят успешно.
  • Задача 1.3: Создать CLI-инструмент (phantom-hidden-service)

    • Действие: Создать файл tools/phantom-hidden-service.c.
    • Действие: Реализовать парсинг команд --create, --bind, --list.
    • Действие: Интегрировать инструмент с функциями из libphantom.so (phantom_hs_*).
    • Критерий завершения: Команда phantom-hidden-service --create успешно создает новый сервис. Команда phantom-hidden-service --bind успешно привязывает сервис к локальному порту.
  • Задача 1.4: Написать функциональный тест

    • Действие: Создать скрипт, который автоматически:
      1. Запускает локальную сеть Phantom.
      2. Создает hidden service с помощью CLI.
      3. Запускает простой веб-сервер.
      4. Привязывает его к hidden service.
      5. Запускает клиент, который скачивает файл с этого сервиса через сеть Phantom.
    • Критерий завершения: Тест проходит от начала до конца без ошибок. Скачанный файл идентичен оригиналу.

🔴 Фаза 2: Реализация Exit Nodes (Срок: ~3 месяца)

Цель: Создать возможность безопасного выхода в публичный интернет через сеть Phantom.

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

    • Действие: Проанализировать phantom_exit_node.h.
    • Действие: Разработать схему взаимодействия: клиент -> туннель Phantom -> выходной узел -> публичный интернет.
    • Действие: Спроектировать формат Exit Policy (какие порты и адреса разрешены/запрещены).
    • Критерий завершения: Создан документ с техническим дизайном Exit Nodes.
  • Задача 2.2: Написать код реализации (phantom_exit_node.c)

    • Действие: Создать файл src/phantom_exit_node.c.
    • Действие: Реализовать функцию phantom_exit_init(): регистрация узла в DHT как выходного.
    • Действие: Реализовать функцию phantom_exit_handle_request(): прием запроса из туннеля, проверка по Exit Policy, установка реального TCP-соединения и проксирование трафика.
    • Критерий завершения: Юнит-тесты для phantom_exit_node.c проходят. Выходной узел успешно проксирует трафик.
  • Задача 2.3: Переписать SOCKS5 прокси

    • Действие: Создать tools/phantom-socks5-proxy.c (или доработать Python-скрипт для использования C-библиотеки через CFFI/ctypes).
    • Действие: Реализовать логику поиска выходного узла в DHT.
    • Действие: Реализовать построение туннеля к найденному выходному узлу.
    • Действие: Передавать запросы на подключение через этот туннель.
    • Критерий завершения: SOCKS5 прокси использует реальную сеть Phantom для выхода в интернет. ipinfo.io через прокси показывает IP выходного узла, а не клиента.

🟡 Фаза 3: Доработка TLD Системы (Срок: ~6 месяцев)

Цель: Превратить прототип в работающую децентрализованную DNS.

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

    • Действие: Пройтись по всем TODO в файлах phantom_dns_*.c, phantom_domain_registry.c, phantom_consensus.c и реализовать недостающую логику.
    • Действие: Переписать phantom_dns_resolver.c для использования Kademlia DHT для поиска информации о TLD и DNS-записях.
    • Критерий завершения: DNS-резолвер может найти IP-адрес по доменному имени, запрашивая информацию у узлов в DHT.
  • Задача 3.2: Реализовать механизм консенсуса

    • Действие: Выбрать и реализовать алгоритм консенсуса (например, упрощенный PoS или PBFT) для валидаторов TLD.
    • Действие: Реализовать механизм голосования за добавление/изменение DNS-записей.
    • Критерий завершения: Изменение DNS-записи, принятое большинством валидаторов, успешно распространяется по сети.
  • Задача 3.3: Написать тесты производительности и масштабируемости

    • Действие: Создать тестовый стенд для генерации высокой нагрузки на DNS.
    • Действие: Реализовать шардинг доменного пространства для горизонтального масштабирования.
    • Критерий завершения: Система выдерживает нагрузку, близкую к заявленной в документации. Добавление новых валидаторов увеличивает общую пропускную способность.

🟢 Фаза 4: Финальные Доработки (Срок: ~4 месяца)

Цель: Завершить все остальные компоненты и привести проект в полное соответствие с документацией.

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

    • Действие: Написать работающие примеры для "Anonymous File Storage", "Encrypted Messenger", "VPN" и др., используя уже готовые функции ядра.
    • Критерий завершения: Все 8+ заявленных примеров существуют, работают и используют реальную сеть Phantom.
  • Задача 4.2: Создать комплексные функциональные тесты

    • Действие: Доработать test-real-scenarios.sh для проверки сквозной передачи данных во всех реализованных сценариях.
    • Действие: Добавить тесты на устойчивость к отказам (отключение узлов, потеря пакетов).
    • Критерий завершения: Все тесты проходят автоматически и включены в CI/CD.
  • Задача 4.3: Обновить документацию

    • Действие: Провести ревизию всей документации.
    • Действие: Четко разделить, что реализовано, а что находится в планах. Убрать вводящие в заблуждение заявления.
    • Действие: Завершить русификацию комментариев в коде.
    • Критерий завершения: Документация на 100% соответствует реальному состоянию проекта.