IPFS для децентрализованных пользовательских интерфейсов
Вы написали невероятное новое децентрализованное приложение. Вы даже написали для него пользовательский интерфейс. Но теперь вы боитесь, что кто-то попытается подвергнуть его цензуре, отключив ваш пользовательский интерфейс, который представляет собой всего лишь один сервер в облаке. Из этого руководства вы узнаете, как избежать цензуры, разместив свой пользовательский интерфейс в межпланетной файловой системе (IPFS) (opens in a new tab), чтобы любой желающий мог закрепить его на сервере для будущего доступа.
Вы можете использовать сторонний сервис, такой как Fleek (opens in a new tab), чтобы сделать всю работу. Это руководство предназначено для тех, кто хочет сделать достаточно, чтобы понять, что они делают, даже если это потребует больше работы.
Начало работы в локальной сети
Существует несколько сторонних провайдеров IPFS (opens in a new tab), но для тестирования лучше всего начать с локального запуска IPFS.
-
Установите пользовательский интерфейс IPFS (opens in a new tab).
-
Создайте каталог с вашим веб-сайтом. Если вы используете Vite (opens in a new tab), используйте эту команду:
1pnpm vite build -
В IPFS Desktop нажмите Импорт > Папка и выберите каталог, созданный на предыдущем шаге.
-
Выберите только что загруженную папку и нажмите Переименовать. Дайте ей более осмысленное имя.
-
Выберите ее снова и нажмите Поделиться ссылкой. Скопируйте URL-адрес в буфер обмена. Ссылка будет похожа на
https://ipfs.io/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ. -
Нажмите Статус. Разверните вкладку Дополнительно, чтобы увидеть адрес шлюза. Например, в моей системе адрес
http://127.0.0.1:8080. -
Объедините путь из шага со ссылкой с адресом шлюза, чтобы найти свой адрес. Например, для приведенного выше примера URL-адрес —
http://127.0.0.1:8080/ipfs/QmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ. Откройте этот URL-адрес в браузере, чтобы увидеть ваш сайт.
Загрузка
Итак, теперь вы можете использовать IPFS для локальной раздачи файлов, что не очень интересно. Следующий шаг — сделать их доступными для всего мира, когда вы не в сети.
Существует ряд хорошо известных сервисов закрепления (opens in a new tab). Выберите один из них. Какой бы сервис вы ни использовали, вам необходимо создать аккаунт и предоставить ему идентификатор контента (CID) в вашем IPFS desktop.
Лично я считаю, что 4EVERLAND (opens in a new tab) является самым простым в использовании. Вот инструкция для него:
-
Перейдите на панель управления (opens in a new tab) и войдите в систему с помощью своего кошелька.
-
В левой боковой панели нажмите Хранилище > 4EVER Pin.
-
Нажмите Загрузить > Выбранный CID. Дайте вашему контенту имя и укажите CID из IPFS desktop. В настоящее время CID — это строка, которая начинается с
Qm, за которой следуют 44 буквы и цифры, представляющие собой закодированный в base-58 (opens in a new tab) хэш, напримерQmaCuQ7yN6iyBjLmLGe8YiFuCwnePoKfVu6ue8vLBsLJQJ, но это, вероятно, изменится (opens in a new tab). -
Начальный статус: В очереди. Перезагружайте, пока он не изменится на Закреплено.
-
Нажмите на свой CID, чтобы получить ссылку. Вы можете увидеть мое приложение здесь (opens in a new tab).
-
Возможно, вам потребуется активировать свой аккаунт, чтобы он был закреплен более чем на месяц. Активация аккаунта стоит около 1 $. Если вы закрыли его, выйдите из системы и войдите снова, чтобы вам снова предложили активацию.
Использование из IPFS
На данный момент у вас есть ссылка на централизованный шлюз, который обслуживает ваш контент IPFS. Короче говоря, ваш пользовательский интерфейс может быть немного безопаснее, но он все еще не устойчив к цензуре. Для настоящей устойчивости к цензуре пользователям необходимо использовать IPFS непосредственно из браузера (opens in a new tab).
После того как вы его установили (и настольный IPFS работает), вы можете перейти на /ipfs/<CID> (opens in a new tab) на любом сайте, и вы получите этот контент, обслуживаемый децентрализованно.
Недостатки
Вы не можете надежно удалить файлы IPFS, поэтому, пока вы изменяете свой пользовательский интерфейс, вероятно, лучше либо оставить его централизованным, либо использовать межпланетную систему имен (IPNS) (opens in a new tab), систему, которая обеспечивает изменяемость поверх IPFS. Конечно, все, что является изменяемым, может быть подвергнуто цензуре, в случае IPNS путем давления на человека, имеющего соответствующий приватный ключ.
Кроме того, некоторые пакеты имеют проблемы с IPFS, поэтому, если ваш веб-сайт очень сложен, это может быть не лучшим решением. И, конечно, все, что зависит от серверной интеграции, не может быть децентрализовано только за счет размещения клиентской части в IPFS.
Заключение
Точно так же, как Ethereum позволяет децентрализовать базу данных и бизнес-логику вашего децентрализованного приложения, IPFS позволяет децентрализовать пользовательский интерфейс. Это позволяет вам перекрыть еще один вектор атаки на ваше децентрализованное приложение.
Больше моих работ смотрите здесь (opens in a new tab).
Последнее обновление страницы: 25 февраля 2026 г.