June 10, 2020

IPFS — межпланетная файловая система и ее возможная роль в Web 3.0

Представьте, что вы заходите на какой-то популярный сайт и обнаруживаете, что грузится он невероятно медленно. Если падение скорости никак не связано с работой провайдера, это может указывать на проблемы с самим ресурсом, например, скорость доступа к нему упала вследствие большого наплыва пользователей или преднамеренной DDoS-атаки. А еще сайт может быть заблокирован или оказаться недоступным из-за неполадок на сервере.

А теперь давайте предположим, что сайт лежит не на одном конкретном сервере, а на множестве узлов, а доступ к нему осуществляется примерно таким же образом, как к файлам на торрент-трекере. Поскольку такой сайт децентрализован, «положить» его будет значительно труднее, а уж взять и закрыть просто нереально, поскольку тогда пришлось бы физически удалить его со всех компьютеров. И это вовсе не фантастика, мы уже стоим на пороге качественно новой модели интернета, в которой значительная часть контента будет распределена между сотнями миллионов компьютеров, являющихся одновременно и клиентами, и серверами.

Наиболее ярким примером такой модели может послужить IPFS — распределенный гипермедиа-протокол и одновременно универсальная файловая система с контентной адресацией, которая, по замыслу ее автора Хуана Бенета, должна заменить традиционную модель хранения контента в Глобальной сети и способ обмена им между пользователями.

Как работает IPFS

Если с чем и можно сравнить межпланетную файловую систему, а именно так расшифровывается аббревиатура IPFS (InterPlanetary File System), то это с торрентом. И действительно, IPFS работает по тому же принципу, что и любая технология P2P. А еще ее можно сравнить с биткоином, поскольку для доступа к данным IPFS используются привязанные к ним уникальные криптографические хеши-идентификаторы. Исходить следует из того, что все файлы, включая страницы сайтов, изначально хранятся на компьютерах пользователей и децентрализованных серверах.

Когда вы добавляете в IPFS новый файл, он разбивается на блоки, каждому из таких блоков и целому файлу в отдельности присваиваются уникальные идентификаторы, являющиеся по сути их криптографическими хэшами.

Эти же хэши одновременно являются ссылками, которыми вы можете делиться с другими участниками сети. Получив ссылку с ID, пользователи получают доступ и к контенту, в свою очередь они могут поделиться ссылкой с другими людьми и так далее по разветвляющейся цепочке.

Помимо фактических данных, каждый узел хранит часть индекса, который позволяет другим пользователям сети найти запрашиваемый файл. Когда вы запрашиваете контент, специальное программное обеспечение отправляет запрос в распределенную индексную базу хэшей и формирует список компьютеров, на которых хранятся данные с соответствующим идентификатором. После чего ваш ПК подключается к ближайшим из них, скачивает фрагменты файлов и собирает их воедино.

Преимущества IPNS

• Децентрализация, отсутствие цензуры в интернете.
• Персистентность ссылок, являющихся по сути уникальными хэшами файлов.
• Подлинность файлов подтверждается их контрольными суммами.
• Успешное противодействие DDoS-атакам и региональным блокировкам.
• Более высокая скорость доступа к данным, чем при использование традиционного протокола HTTP.
• В перспективе создание «локального» интернета, в котором обычный компьютер может служить провайдером.
• Разработка веб-приложений, использующих вычислительные мощности миллионов компьютеров.

Как опробовать IPNS

Несмотря на то, что значительная часть функционала сети находится в ранней стадии разработки, опробовать IPNS вы можете уже сейчас. Для этого вам нужно скачать и установить со страницы проекта https://github.com/ipfs-shipyard/ipfs-desktop/releases приложение-клиент. Графический интерфейс приложения представлен пятью разделами: