13 KiB
Практический Чек-лист Разработки 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: Написать функциональный тест
- Действие: Создать скрипт, который автоматически:
- Запускает локальную сеть Phantom.
- Создает hidden service с помощью CLI.
- Запускает простой веб-сервер.
- Привязывает его к hidden service.
- Запускает клиент, который скачивает файл с этого сервиса через сеть 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% соответствует реальному состоянию проекта.