Files
Phantom/website/docs.html

537 lines
28 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="Полная документация Phantom Protocol — руководства, API, примеры кода">
<title>Документация — Phantom Protocol</title>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.4.0/css/all.min.css">
<link href="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/themes/prism-tomorrow.min.css" rel="stylesheet">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/desktop-fix.css">
<link rel="stylesheet" href="css/responsive.css">
<link rel="stylesheet" href="css/vendor-prefixes.css">
<link rel="stylesheet" href="css/visual-fixes.css">
</head>
<body data-theme="dark">
<!-- Animated Background Canvas -->
<canvas id="phantomBackground"></canvas>
<!-- Навигация -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top glass-nav">
<div class="container">
<a class="navbar-brand" href="index.html">
<i class="fas fa-ghost"></i> <span class="brand-text">Phantom Protocol</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav ms-auto">
<li class="nav-item"><a class="nav-link" href="index.html">Главная</a></li>
<li class="nav-item"><a class="nav-link active" href="docs.html">Документация</a></li>
<li class="nav-item"><a class="nav-link" href="architecture.html">Архитектура</a></li>
<li class="nav-item"><a class="nav-link" href="download.html">Скачать</a></li>
<li class="nav-item"><a class="nav-link" href="community.html">Сообщество</a></li>
<li class="nav-item"><a class="nav-link" href="about.html">О проекте</a></li>
<li class="nav-item">
<a class="nav-link btn-gradient ms-lg-2" href="download.html">
<i class="fas fa-download me-1"></i> Начать
</a>
</li>
<li class="nav-item">
<button class="btn btn-sm theme-toggle" id="themeToggle">
<i class="fas fa-moon"></i>
</button>
</li>
</ul>
</div>
</div>
</nav>
<!-- Hero -->
<section class="docs-hero pt-5 mt-5">
<div class="container">
<div class="row">
<div class="col-lg-8 mx-auto text-center py-5">
<h1 class="display-3 mb-3">
<i class="fas fa-book text-gradient"></i> Документация
</h1>
<p class="lead">Всё, что нужно знать для работы с Phantom Protocol</p>
<div class="search-box mt-4">
<input type="text" class="form-control form-control-lg" placeholder="Поиск в документации..." id="docsSearch">
</div>
</div>
</div>
</div>
</section>
<!-- Основной контент -->
<section class="py-5">
<div class="container">
<div class="row">
<!-- Sidebar -->
<div class="col-lg-3 mb-4">
<div class="docs-sidebar sticky-top" style="top: 100px;">
<h5 class="mb-3">Навигация</h5>
<ul class="nav flex-column">
<li class="nav-item"><a href="#quickstart" class="nav-link active">Быстрый старт</a></li>
<li class="nav-item"><a href="#installation" class="nav-link">Установка</a></li>
<li class="nav-item"><a href="#configuration" class="nav-link">Конфигурация</a></li>
<li class="nav-item"><a href="#api" class="nav-link">API Reference</a></li>
<li class="nav-item"><a href="#cli" class="nav-link">CLI Commands</a></li>
<li class="nav-item"><a href="#examples" class="nav-link">Примеры</a></li>
<li class="nav-item"><a href="#troubleshooting" class="nav-link">Troubleshooting</a></li>
<li class="nav-item"><a href="#faq" class="nav-link">FAQ</a></li>
</ul>
</div>
</div>
<!-- Контент -->
<div class="col-lg-9">
<!-- Быстрый старт -->
<div id="quickstart" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-rocket text-primary"></i> Быстрый старт</h2>
<p class="lead">Запустите Phantom Protocol за 60 секунд.</p>
<div class="alert alert-info">
<i class="fas fa-info-circle"></i> Требования: Docker 20.10+ или Node.js 18+
</div>
<h4 class="mt-4">Вариант 1: Docker (рекомендуется)</h4>
<pre><code class="language-bash"># Запуск ноды
docker run -d --name phantom \
-p 9050:9050 \
-p 4000:4000 \
phantomprotocol/phantom:latest
# Проверка статуса
docker logs phantom</code></pre>
<h4 class="mt-4">Вариант 2: NPM</h4>
<pre><code class="language-bash"># Установка
npm install -g @phantom-protocol/cli
# Запуск ноды
phantom start
# Проверка статуса
phantom status</code></pre>
<div class="mt-4 p-4 bg-success bg-opacity-10 rounded">
<h5><i class="fas fa-check-circle text-success"></i> Готово!</h5>
<p class="mb-0">Ваша нода запущена. SOCKS5 proxy доступен на <code>localhost:9050</code></p>
</div>
</div>
<!-- Установка -->
<div id="installation" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-download text-primary"></i> Установка</h2>
<h4>Системные требования</h4>
<ul class="list-styled">
<li><strong>OS:</strong> Linux, macOS, WSL2</li>
<li><strong>RAM:</strong> 512 MB минимум, 2 GB рекомендуется</li>
<li><strong>Disk:</strong> 1 GB свободного места</li>
<li><strong>Network:</strong> Открытые порты 4000-4100 (опционально)</li>
</ul>
<h4 class="mt-4">Docker установка</h4>
<pre><code class="language-bash"># Pull образа
docker pull phantomprotocol/phantom:latest
# Запуск с persistent storage
docker run -d --name phantom \
-v phantom-data:/data \
-p 9050:9050 \
-p 4000:4000 \
--restart unless-stopped \
phantomprotocol/phantom:latest</code></pre>
<h4 class="mt-4">Сборка из исходников</h4>
<pre><code class="language-bash"># Клонирование репозитория
git clone https://github.com/phantom-protocol/phantom.git
cd phantom
# Установка зависимостей
npm install
# Сборка
npm run build
# Запуск
npm start</code></pre>
</div>
<!-- Конфигурация -->
<div id="configuration" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-cog text-primary"></i> Конфигурация</h2>
<h4>Файл конфигурации</h4>
<p>Создайте <code>phantom.config.json</code> в рабочей директории:</p>
<pre><code class="language-json">{
"node": {
"port": 4000,
"bootstrap": [
"bootstrap1.phantom.network:4000",
"bootstrap2.phantom.network:4000"
],
"maxPeers": 50,
"dataDir": "./data"
},
"socks": {
"enabled": true,
"port": 9050,
"host": "127.0.0.1"
},
"crypto": {
"algorithm": "kyber1024",
"keyRotation": 86400
},
"logging": {
"level": "info",
"file": "./logs/phantom.log"
}
}</code></pre>
<h4 class="mt-4">Переменные окружения</h4>
<pre><code class="language-bash"># Порт SOCKS5
PHANTOM_SOCKS_PORT=9050
# Порт ноды
PHANTOM_NODE_PORT=4000
# Максимум пиров
PHANTOM_MAX_PEERS=50
# Уровень логирования
PHANTOM_LOG_LEVEL=info
# Директория данных
PHANTOM_DATA_DIR=/data</code></pre>
</div>
<!-- API Reference -->
<div id="api" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-code text-primary"></i> API Reference</h2>
<h4>REST API</h4>
<p>Phantom Protocol предоставляет REST API на порту <code>4001</code></p>
<h5 class="mt-4">GET /status</h5>
<p>Получить статус ноды</p>
<pre><code class="language-bash">curl http://localhost:4001/api/status</code></pre>
<p><strong>Response:</strong></p>
<pre><code class="language-json">{
"version": "2.0.0",
"uptime": 3600,
"peers": {
"connected": 45,
"max": 50
},
"dht": {
"nodes": 15230,
"buckets": 160
},
"traffic": {
"sent": 1048576,
"received": 2097152
}
}</code></pre>
<h5 class="mt-4">POST /node/connect</h5>
<p>Подключиться к ноде</p>
<pre><code class="language-bash">curl -X POST http://localhost:4001/api/node/connect \
-H "Content-Type: application/json" \
-d '{"address": "node.phantom.network:4000"}'</code></pre>
<h5 class="mt-4">GET /peers</h5>
<p>Список подключенных пиров</p>
<pre><code class="language-bash">curl http://localhost:4001/api/peers</code></pre>
</div>
<!-- CLI Commands -->
<div id="cli" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-terminal text-primary"></i> CLI Commands</h2>
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th>Команда</th>
<th>Описание</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>phantom start</code></td>
<td>Запустить ноду</td>
</tr>
<tr>
<td><code>phantom stop</code></td>
<td>Остановить ноду</td>
</tr>
<tr>
<td><code>phantom status</code></td>
<td>Показать статус</td>
</tr>
<tr>
<td><code>phantom peers</code></td>
<td>Список пиров</td>
</tr>
<tr>
<td><code>phantom logs</code></td>
<td>Показать логи</td>
</tr>
<tr>
<td><code>phantom config</code></td>
<td>Показать конфигурацию</td>
</tr>
<tr>
<td><code>phantom keygen</code></td>
<td>Сгенерировать ключи</td>
</tr>
<tr>
<td><code>phantom version</code></td>
<td>Версия Phantom</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- Примеры -->
<div id="examples" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-lightbulb text-primary"></i> Примеры использования</h2>
<h4>Настройка браузера</h4>
<p>Firefox (рекомендуется):</p>
<ol>
<li>Settings → Network Settings → Settings</li>
<li>Manual proxy configuration</li>
<li>SOCKS Host: <code>127.0.0.1</code>, Port: <code>9050</code></li>
<li>SOCKS v5: ✓</li>
<li>Proxy DNS when using SOCKS v5: ✓</li>
</ol>
<h4 class="mt-4">Использование с curl</h4>
<pre><code class="language-bash"># HTTP запрос через Phantom
curl --socks5 127.0.0.1:9050 https://check.torproject.org
# С DNS через SOCKS
curl --socks5-hostname 127.0.0.1:9050 https://example.com</code></pre>
<h4 class="mt-4">Python пример</h4>
<pre><code class="language-python">import requests
proxies = {
'http': 'socks5://127.0.0.1:9050',
'https': 'socks5://127.0.0.1:9050'
}
response = requests.get('https://httpbin.org/ip', proxies=proxies)
print(response.json())</code></pre>
</div>
<!-- Troubleshooting -->
<div id="troubleshooting" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-wrench text-primary"></i> Troubleshooting</h2>
<h4>Нода не запускается</h4>
<div class="alert alert-warning">
<strong>Проблема:</strong> <code>Error: Address already in use</code>
<br><strong>Решение:</strong> Порт уже занят. Измените порт в конфигурации или остановите другое приложение.
</div>
<h4>Не могу подключиться к пирам</h4>
<div class="alert alert-warning">
<strong>Проблема:</strong> <code>No peers connected</code>
<br><strong>Решение:</strong> Проверьте firewall. Откройте порты 4000-4100 или используйте UPnP.
</div>
<h4>Низкая скорость</h4>
<div class="alert alert-info">
<strong>Совет:</strong> Увеличьте <code>maxPeers</code> в конфигурации до 100. Подключитесь к bootstrap нодам вручную.
</div>
</div>
<!-- FAQ -->
<div id="faq" class="doc-section mb-5">
<h2 class="mb-4"><i class="fas fa-question-circle text-primary"></i> FAQ</h2>
<div class="accordion" id="faqAccordion">
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#faq1">
Насколько Phantom Protocol безопасен?
</button>
</h2>
<div id="faq1" class="accordion-collapse collapse show" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Phantom использует постквантовую криптографию (CRYSTALS-Kyber-1024), полностью децентрализованную DHT-архитектуру и фантомные адреса для предотвращения корреляции трафика. Протокол устойчив к timing attacks и global passive adversary.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq2">
Чем Phantom отличается от Tor?
</button>
</h2>
<div id="faq2" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Главные отличия: 1) Полностью децентрализованная DHT (нет директорий), 2) Постквантовая криптография, 3) Фантомные адреса (невозможна корреляция), 4) O(log n) масштабируемость вместо O(n).
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq3">
Можно ли запустить exit-ноду?
</button>
</h2>
<div id="faq3" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Да. Добавьте <code>"exitNode": true</code> в конфигурацию. Учтите юридические последствия в вашей юрисдикции. Используйте <code>exitPolicy</code> для ограничения портов.
</div>
</div>
</div>
<div class="accordion-item">
<h2 class="accordion-header">
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#faq4">
Какая скорость подключения?
</button>
</h2>
<div id="faq4" class="accordion-collapse collapse" data-bs-parent="#faqAccordion">
<div class="accordion-body">
Средняя латентность ~200-300ms, скорость зависит от количества пиров и их bandwidth. С 50+ пирами можно достичь 5-10 Mbps для обычного веб-серфинга.
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Footer -->
<!-- Единый Footer для всех страниц Phantom Protocol -->
<footer class="footer py-5 mt-5">
<div class="container">
<div class="row">
<!-- Колонка 1: Логотип и описание -->
<div class="col-lg-4 col-md-6 mb-4 mb-lg-0">
<h5 class="mb-3">
<i class="fas fa-ghost text-gradient"></i> Phantom Protocol
</h5>
<p class="text-muted">
Децентрализованная приватная сеть нового поколения с постквантовой криптографией.
</p>
<div class="social-links mt-3">
<a href="https://github.com/phantom-protocol" target="_blank" class="me-2">
<i class="fab fa-github"></i>
</a>
<a href="https://twitter.com/PhantomProtocol" target="_blank" class="me-2">
<i class="fab fa-twitter"></i>
</a>
<a href="https://t.me/phantomprotocol" target="_blank" class="me-2">
<i class="fab fa-telegram"></i>
</a>
<a href="https://discord.gg/phantom" target="_blank">
<i class="fab fa-discord"></i>
</a>
</div>
</div>
<!-- Колонка 2: Продукт -->
<div class="col-lg-2 col-md-6 mb-4 mb-lg-0">
<h6 class="mb-3">Продукт</h6>
<ul class="list-unstyled">
<li class="mb-2"><a href="architecture.html" class="footer-link">Архитектура</a></li>
<li class="mb-2"><a href="download.html" class="footer-link">Скачать</a></li>
<li class="mb-2"><a href="index.html#comparison" class="footer-link">Сравнение</a></li>
<li class="mb-2"><a href="index.html#demo" class="footer-link">Демо</a></li>
</ul>
</div>
<!-- Колонка 3: Ресурсы -->
<div class="col-lg-2 col-md-6 mb-4 mb-lg-0">
<h6 class="mb-3">Ресурсы</h6>
<ul class="list-unstyled">
<li class="mb-2"><a href="docs.html" class="footer-link">Документация</a></li>
<li class="mb-2"><a href="docs.html#api" class="footer-link">API Reference</a></li>
<li class="mb-2"><a href="docs.html#faq" class="footer-link">FAQ</a></li>
<li class="mb-2"><a href="https://github.com/phantom-protocol" target="_blank" class="footer-link">GitHub</a></li>
</ul>
</div>
<!-- Колонка 4: Сообщество -->
<div class="col-lg-2 col-md-6 mb-4 mb-lg-0">
<h6 class="mb-3">Сообщество</h6>
<ul class="list-unstyled">
<li class="mb-2"><a href="community.html" class="footer-link">Сообщество</a></li>
<li class="mb-2"><a href="https://github.com/phantom-protocol/discussions" target="_blank" class="footer-link">Обсуждения</a></li>
<li class="mb-2"><a href="https://t.me/PhantomProtocol" target="_blank" class="footer-link">Telegram</a></li>
<li class="mb-2"><a href="https://discord.gg/phantom" target="_blank" class="footer-link">Discord</a></li>
</ul>
</div>
<!-- Колонка 5: О проекте -->
<div class="col-lg-2 col-md-6">
<h6 class="mb-3">О проекте</h6>
<ul class="list-unstyled">
<li class="mb-2"><a href="about.html" class="footer-link">О нас</a></li>
<li class="mb-2"><a href="https://github.com/phantom-protocol/phantom/blob/main/LICENSE" target="_blank" class="footer-link">Лицензия MIT</a></li>
<li class="mb-2"><a href="https://github.com/phantom-protocol/phantom/blob/main/CONTRIBUTING.md" target="_blank" class="footer-link">Контрибуция</a></li>
<li class="mb-2"><a href="about.html" class="footer-link">Контакты</a></li>
</ul>
</div>
</div>
<hr class="my-4">
<!-- Footer Bottom -->
<div class="footer-bottom">
<div class="row align-items-center">
<div class="col-md-6">
<p class="mb-0">&copy; 2025 Phantom Protocol. Open Source под лицензией MIT.</p>
</div>
<div class="col-md-6 text-md-end">
<p class="mb-0">
<i class="fas fa-code"></i> Сделано с <i class="fas fa-heart text-danger"></i> для открытого интернета
</p>
</div>
</div>
</div>
</div>
</footer>
<!-- jQuery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<!-- Bootstrap Bundle -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<!-- Prism.js -->
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/prism.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-bash.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-json.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/prismjs@1.29.0/components/prism-python.min.js"></script>
<!-- Main JavaScript -->
<script src="js/background.js" defer></script>
<script src="js/main.js" defer></script>
</body>
</html>