Как создать децентрализованный сайт: пошаговое руководство

Создание децентрализованного сайта проще, чем кажется. Главное отличие от обычного сайта — размещение на децентрализованной сети, например IPFS. Остальное — привычные этапы: файлы, деплой, домен. В этом руководстве вы пройдёте весь цикл: от подготовки файлов до проверки доступа через ENS и .link, включая варианты: собственный IPFS‑узел и Fleek.
Что вам нужно заранее
- Web3‑домен (например ENS: elgwaro.eth) — можно купить у регистратора.
- Небольшой запас ETH в кошельке для оплаты транзакций (изменяется в зависимости от нагрузки сети).
- GitHub‑аккаунт для работы с Fleek (если используете Fleek).
- Базовые навыки работы с терминалом и Git.
Важно: сохраните контроль над приватными ключами кошелька; именно с этого аккаунта будут подписываться изменения DNS/records ENS.
1. Подготовьте файлы сайта
Начните с подготовки статических файлов сайта: HTML, CSS, JavaScript, изображения и т. п. Вы можете создавать сайт с нуля или взять шаблон.
- Рекомендация: держите все файлы в одной папке — это упростит загрузку в IPFS и деплой.
Пример: скачиваем бесплатный шаблон и распаковываем в папку проекта.
Если вы создаёте сайт самостоятельно, проверьте, что основная страница называется index.html и что относительные пути к ресурсам корректны.
2. Загрузка файлов в IPFS
IPFS (InterPlanetary File System) — распределённая P2P‑сеть для хранения и доставки файлов. Два основных способа размещения:
- На собственном IPFS‑узле (вы управляете узлом, но он должен быть онлайн для отдачи файлов).
- Через хост-провайдеров IPFS (например, Piñata, Infura, Fleek) — они реплицируют и обеспечивают доступность.
Загрузка на собственный IPFS‑узел
- Установите IPFS (локальный клиент) или используйте поддержку IPFS в браузере Brave.
- Откройте панель управления IPFS (Dashboard).
- Нажмите Import и загрузите папку с вашим сайтом.
После загрузки вы получите CID (IPFS‑хеш). Скопируйте ссылку через Share Link и откройте в браузере с поддержкой IPFS (например Brave) для проверки.
Важно: при использовании собственного узла сайт будет доступен только пока узел онлайн. Для публичного и стабильного доступа приходится реплицировать CID на другие узлы.
Загрузка через Fleek (рекомендуемый вариант для большинства)
Fleek интегрируется с GitHub и автоматически деплоит сайт в IPFS и распределяет доступность.
Шаги:
- Сохраните файлы сайта в папке, например Desktop/dWeb.
- Создайте новый репозиторий на GitHub и подготовьте локальную папку для загрузки.
- Установите Git (если ещё не установлен).
- Выполните команды в Git Bash (в папке проекта):
cd desktop/dWebgit init
git add .
git commit -m "first commit"
git remote add origin [url].gitГде [url] — адрес вашего репозитория, например:
git remote add origin https://github.com/elgwaro/dWeb.gitПосле этого файлы будут загружены в GitHub.
Связка Fleek и GitHub
- Войдите в Fleek и нажмите Add New Site.
- Подключите Fleek к GitHub и разрешите доступ к репозиторию с файлами.
- В Fleek выберите ваш репозиторий, в разделе Deploy Location укажите IPFS и продолжите.
- Выберите фреймворк (если не уверены — Other) и запустите деплой.
Fleek автоматически создаст CID и будет поддерживать доступность сайта.
3. Привязка Web3‑домена (ENS) к вашему сайту
После деплоя у вас есть CID сайта. Следующий шаг — связать его с вашим Web3‑доменом (например ENS). Это позволит людям переходить по читабельному имени, например elgwaro.eth.link или elgwaro.eth в браузере Brave.
Привязка ENS к IPFS
- Откройте панель ENS и найдите раздел с вашим доменом.
- Перейдите в Records → Edit Records.
- В поле Other (или Content) вставьте IPFS‑ссылку (CID) и сохраните.
- Подключите кошелёк, подтвердите транзакцию и оплатите комиссию сети (gas).
После подтверждения ENS будет указывать на ваш IPFS‑CID.
Привязка через Fleek (альтернативный путь)
Если вы использовали Fleek, можно добавить ENS прямо в панели Fleek:
- Откройте настройки развернутого сайта и нажмите Add Custom Domain.
- В разделе ENS Info нажмите Add ENS, введите домен и Verify.
- Нажмите Set Content Hash и подтвердите транзакцию в кошельке — убедитесь, что подключённый аккаунт является контролёром домена.
4. Проверка доступа к сайту
После успешной привязки ENS сайт будет доступен по адресу <вашдомен>.eth.link (например elgwaro.eth.link). В браузере Brave с поддержкой IPFS можно использовать просто elgwaro.eth.
Поздравляем — сайт работает!
Когда децентрализованный сайт не будет работать (примеры и решения)
- Проблема: сайт не загружается в обычном браузере по .eth без .link.
- Причина: браузер не поддерживает IPFS напрямую. Решение: используйте Brave или добавьте .link. Также настройте прокси-шлюз через ipfs.io или другой публичный мост, если нужно.
- Проблема: CID обновлён, но домен всё ещё указывает на старую версию.
- Причина: кэширование на стороне провайдера или браузера, или транзакция ENS ещё не подтверждена. Решение: дождитесь подтверждения, очистите кэш, проверьте Content Hash в Etherscan.
- Проблема: сайт доступен только когда ваш локальный узел онлайн.
- Причина: вы использовали только свой IPFS‑узел. Решение: добавьте репликацию через Fleek, Pinata или попросите других узлов закрепить CID.
Короткий playbook: как быстро развернуть сайт (SOP)
- Подготовьте папку проекта с index.html.
- Инициализируйте git и загрузите на GitHub.
- Создайте сайт в Fleek, подключив репозиторий, выберите IPFS для Deploy Location.
- Дождитесь деплоя, сохраните CID.
- В ENS установите Content Hash = CID (через Fleek или напрямую в ENS), подпишите транзакцию в кошельке.
- Проверьте доступ через
.eth.link или Brave. - Настройте мониторинг доступности (простая проверка HTTP/200 через uptime сервисы) и периодически проверяйте актуальность CID.
Чеклист ролей
- Разработчик:
- Подготовить статические файлы
- Убедиться, что index.html и относительные пути правильные
- Закоммитить в Git
- DevOps / Maintainer:
- Настроить Fleek/Pinata/Infura (репликация)
- Проверить Content Hash в ENS
- Автоматизировать деплой (GitHub Actions → Fleek)
- Владелец контента / менеджер:
- Обновить контент, подтвердить сборку
- Проверить видимость в разных браузерах
Мини‑методология: перевод Web2 workflow в Web3
- Код в git (как обычно).
- Continuous deployment: при push GitHub → триггер в Fleek → билд и upload в IPFS.
- Фиксация версии: Fleek/вы автоматически получаете CID — уникальный immutable адрес.
- Привязка к человеку‑читаемому имени (ENS) через Content Hash.
Эта схема сохраняет привычные CI/CD практики и добавляет слой неизменяемого адреса для версий.
Ментальная модель: как думать о CID и ENS
- CID — это «контентный адрес» файла; при изменении контента CID меняется.
- ENS — это «человеко‑читаемое имя», которое указывает на CID через content hash.
- IPFS — транспорт/склад; Fleek/Pinata — репозитории/репликация и упрощение доступа.
flowchart TD
A[Подготовка файлов] --> B[GitHub]
B --> C[Fleek]
C --> D[Загрузка в IPFS]
D --> E[Получение CID]
E --> F[ENS: Set Content Hash]
F --> G[Пользователь → elgwaro.eth.link]Риски и способы их смягчения
- Риск: потеря доступа к кошельку, управляющему ENS.
- Смягчение: используйте безопасное хранение приватных ключей, мультиподпись для критичных доменов.
- Риск: высокие комиссии сети при изменении записей ENS.
- Смягчение: планируйте изменения, объединяйте операции, работайте в периоды низкой нагрузки сети.
- Риск: зависимость от провайдера (Fleek, Pinata).
- Смягчение: храните CID и используйте несколько pinning‑сервисов или собственный узел.
Совместимость и миграция
- ENS работает в экосистеме Ethereum; при использовании других систем (например Handshake, Unstoppable Domains) процесс аналогичен, но регистрация и интерфейсы отличаются.
- Если вы хотите портировать сайт, экспортируйте CID и повторите привязку в новой системе.
Критерии приёмки
- Сайт доступен по elgwaro.eth.link и возвращает HTTP 200 на корневой запрос.
- Content Hash в ENS соответствует CID, показанному в Fleek или на IPFS‑ноде.
- Сайт корректно загружается в Brave без .link.
- Резервные копии исходников находятся в GitHub.
Тест‑кейсы простого QA
- Открыть elgwaro.eth.link в Chrome — ожидается редирект через публичный шлюз и загрузка страницы.
- Открыть elgwaro.eth в Brave — ожидается прямой показ страницы.
- Изменить контент, задеплоить — ожидать новый CID и обновлённый Content Hash после транзакции ENS.
- Отключить локальный IPFS‑узел — сайт должен быть доступен через Fleek (если он используется).
Короткий глоссарий (1‑строчно)
- IPFS: распределённая сеть для хранения файлов.
- CID: content identifier — адрес содержимого в IPFS.
- ENS: система доменных имён для Web3 на Ethereum.
- Fleek: платформа для хостинга и деплоя сайтов в IPFS.
- Pinning: закрепление (репликация) CID на постоянных узлах.
Короткое резюме
Децентрализованный сайт — это статический сайт, размещённый в IPFS и связанный с Web3‑доменом (ENS). Основные шаги: подготовка файлов, загрузка в IPFS (локально или через Fleek), установка Content Hash в ENS и проверка доступа. Для стабильности используйте репликацию через сервисы pinning и храните контроль над кошельком, управляющим ENS.
Важное: если ваша цель — бороться с цензурой и повысить устойчивость, децентрализованное размещение даёт явные преимущества, но требует внимания к управлению ключами и репликации контента.
Похожие материалы
Microsoft Mood Board: быстрый мудборд для идей
Замена слов в Microsoft Word: быстрый гид
Изменить GPS на iPhone с iToolab AnyGo
Установка Elasticsearch на Ubuntu
Не удаётся войти в аккаунт в Windows 11