unified: Phantom Protocol 2025 complete archive integration

This commit is contained in:
NW
2026-05-18 17:28:53 +01:00
commit b680c5aeca
553 changed files with 112091 additions and 0 deletions

View File

@@ -0,0 +1,119 @@
# Практический Чек-лист Разработки 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% соответствует реальному состоянию проекта.