Что такое межпланетная файловая система (IPFS) и как вы ее используете?

Опубликовано: 2022-06-25
Несколько шестиугольных плиток с «человеческими» символами, соединенных в паутину.
Андрей Яланский / Shutterstock

Межпланетная файловая система (IPFS) — это распределенная одноранговая сеть для обмена файлами, которая может стать основой новой децентрализованной сети. Вот как это работает и как вы можете начать его использовать.

Оглавление

Децентрализованный Интернет
Как работает IPFS
Как хранятся данные
Как установить ИПФС
Веб-интерфейс
Настольный клиент IPFS
Что дальше?

Децентрализованный Интернет

Несмотря на то, что всемирная паутина носит глобальный характер, она по-прежнему является централизованной сетью. Хранилище данных за пределами Интернета — это преимущественно серверы — физические или виртуальные — в массивных фермах серверов или облачных платформах. Эти объекты принадлежат одной компании. Серверы принадлежат или арендуются другими компаниями, настроены и доступны для внешнего мира.

Что такое HTTPS и почему меня это должно волновать?
СВЯЗАННЫЕ Что такое HTTPS и почему меня это должно волновать?

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

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

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

IPFS был создан Хуаном Бенетом и поддерживается основанной им компанией Protocol Labs. Они взяли децентрализованную природу Git и распределенные технологии торрентов, экономящие полосу пропускания, и создали файловую систему, которая работает на всех узлах в сети IPFS. И это здесь сейчас, и работает.

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

Децентрализованная сеть IPFS состоит из всех подключенных к ней компьютеров, известных как узлы . Узлы могут хранить данные и делать их доступными для всех, кто их запрашивает.

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

Это требует нового типа веб-адреса. Вместо маршрутизации на основе адресов, когда вам нужно знать местоположение данных и указать конкретный URL-адрес для этих данных, в децентрализованной сети используется маршрутизация на основе контента .

BitTorrent для начинающих: как начать скачивать торренты
СВЯЗАННЫЕ BitTorrent для начинающих: как начать скачивать торренты

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

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

Это не совсем так. IPFS — это не то, к чему вы подключаетесь и куда загружаете. Это не распределенный общий Dropbox. Это то, в чем вы участвуете, размещая узел или платя за использование профессионально подготовленного узла, размещенного в облачной службе. И если вы не решите поделиться или опубликовать что-то, оно не будет доступно никому другому. На самом деле термин «загрузка» вводит в заблуждение. На самом деле вы импортируете файлы в свой собственный узел.

Что такое шифрование и как оно работает?
СВЯЗАННЫЕ С Что такое шифрование и как оно работает?

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

Как хранятся данные

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

Что такое контрольная сумма (и почему это должно вас волновать)?
СВЯЗАННЫЕ Что такое контрольная сумма (и почему это должно вас волновать)?

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

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

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

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

Конечно, все это зависит от достаточного количества включенных и доступных узлов, а также от достаточного количества закрепленных и кэшированных данных. А для этого нужны участники.

Как установить ИПФС

Пользователи Windows могут загрузить и запустить файл EXE, найденный на странице выпуска IPFS. Если вы работаете на Mac, загрузите файл DMG и перетащите его в Приложения, как обычно. Если у вас возникнут проблемы, ознакомьтесь с официальной документацией.

В демонстрационных целях мы рассмотрим установку в Ubuntu. Пакеты Snap доступны для IPFS и настольного клиента IPFS в любом дистрибутиве Linux. Если вы просто установите IPFS, у вас будет полностью работающий узел IPFS, которым вы сможете управлять и администрировать с помощью браузера. Если вы устанавливаете настольный клиент, вам не нужно использовать браузер, клиент предоставляет все те же функции.

Для установки Snap используйте:

 sudo snap установить ipfs 

Установка основной оснастки IPFS

 sudo snap установить ipfs-desktop 

Установка оснастки настольного клиента IPFS

Теперь вам нужно запустить команду для инициализации вашего узла.

 инициализация ipfs 

Инициализация узла IPFS

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

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]' 

Настройка запросов между источниками в IPFS

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

Настройка методов доступа в IPFS

 sudo sysctl -w net.core.rmem_max=2500000 

Настройка размера сетевого буфера

Убрав их, вы можете запустить демон IPFS.

 демон ipfs 

Запуск демона IPFS

Когда демон запускается, он сообщает о двух адресах, которые вы можете использовать для подключения к нему. Один предназначен для рабочего стола IPFS, а другой — для «webui» IPFS или пользовательского веб-интерфейса.

Адреса подключения демона IPFS

Веб-интерфейс

Вставьте адрес веб-интерфейса http://127.0.0.1:5001/webui в свой браузер, чтобы подключиться к веб-интерфейсу IPFS.

Страница по умолчанию — это экран «Статус». Это информационная панель, показывающая состояние и активность вашего узла. Он показывает размер файлов, которые вы размещаете, а также общий размер кэшированных объектов IPFS, которые размещает ваш узел. Это данные из другого места в сети IPFS. На приборной панели также отображаются два индикатора в реальном времени, показывающие входящий и исходящий трафик IPFS, и график в реальном времени, показывающий историю этого трафика.

Экран состояния веб-интерфейса IPFS

Чтобы перейти к другому экрану, щелкните один из значков на левой боковой панели. Экран «Файлы» позволяет вам увидеть файлы, которые вы импортировали в IPFS. Вы можете использовать синюю кнопку «Импорт» для поиска файлов или папок на вашем компьютере, которые вы хотите импортировать в IPFS.

Экран файлов веб-интерфейса IPFS

IPFS использует деревья Меркла. Это очень эффективный расширенный набор бинарных хеш-деревьев, изобретенный в 1979 году Ральфом Мерклем. Если у вас много деревьев, у вас есть лес. Значок «Исследовать» открывает экран, который позволяет просматривать различные типы информации, хранящейся в IPFS и ее лесу Меркла.

Экран файлов веб-интерфейса IPFS

Есть архив мультфильмов с известного сайта XKCD. Нажав на эту опцию и выбрав мультфильм, вы получите выбранный мультфильм через IPFS.

Мультфильм XKCD доставлен через IPFS

Значок «Уровни» открывает карту мира, на которой показано, где расположены ваши соединения IPFS по всему миру.

Экран IPFS webui Peers

В течение нескольких минут у нас были связи из Австралии, Беларуси, Бельгии, Канады, Китая, Финляндии, Франции, Германии, Японии, Малайзии, Нидерландов, Норвегии, Польши, Португалии, Румынии, России, Сингапура, Южной Кореи, Швеции, Тайваня, Турция, Великобритания и, конечно же, США.

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

Настольный клиент IPFS

Найдите IPFS Desktop в панели запуска приложений вашей системы. В GNOME, когда демон IPFS остановлен , нажмите клавишу «Super» и введите «ipfs». Вы увидите синий значок куба IPFS.

Щелкните этот значок, и запустится настольный клиент. Это запустит сам демон.

Внешний вид и функциональность настольного клиента точно такие же, как и у веб-интерфейса, но на этот раз он работает как отдельное приложение.

Настольный клиент IPFS

Еще одна дополнительная функция, предоставляемая приложением, — это индикатор приложения в области уведомлений.

Это дает вам быстрый доступ к меню опций и индикатору состояния вашего узла. Индикатор зеленый для нормальной работы, красный для ошибки и желтый для запуска.

Меню индикатора приложения IPFS

Что дальше?

Ничто не заменит внезапно существующую централизованную сеть, но со временем все будет развиваться. Возможно, IPFS — это проблеск того, во что она может превратиться.