IPFS 0.9
Состоялся релиз IPFS 0.9 (InterPlanetary File System), которая образует глобальное версионированное хранилище файлов в виде p2p сети (объединение концепций Git и BitTorrent). Отличительная черта IPFS — адреса выдаются согласно содержимому (криптографический хэш), а не месту и имени. Соответственно, адрес нельзя просто изменить, это возможно, только если поменяется содержимое файла, однако прошлое содержимое все также будет доступно по старому адресу. Также в IPFS существуют сервисы привязки постоянных адресов, учитывающих изменения в файлах (IPNS), а также псевдонимы.
Как и в bittorrent — все данные хранятся у участников сети. Обмен информацией происходит через p2p без каких-либо централизованных узлов. Когда нужно получить определенный файл, система находит всех участников (контент используется распределённая хэш таблица — DHT), у кого он имеется и отдает частями в несколько потоков. По окончанию загрузки — получатель становится раздающим.
Цели IPFS — создать распределенное хранилище информации, чтобы повысить надежность ее хранения, даже если одна нода будет выведена из строя, файлы можно будет загружать с других нод. Также это помогает противостоять цензуре и прочим блокировкам контента (чтобы полностью заблокировать файл, придется сделать это на всех нодах). Кроме хранения файлов и обмена данными IPFS может использоваться как основа для создания новых сервисов, например, для организации работы сайтов, не привязанных к серверам, или для создания распределённых приложений.
Код эталонной реализации написан на языке Go и распространяется под лицензиями Apache 2.0 и MIT.
Что нового в версии 0.9:
-
Добавлен экспериментальный клиент DHT для поиска данных с использованием распределённой хэш-таблицы, который отличается от решения на базе IPNS более высокой производительностью.
-
Обновлён web-интерфейс (WebUI), в котором появилась экспериментальная поддержка закрепления внешних сервисов (аналог команды «ipfs pin remote service»). Изменено оформление экранов для работы с файлами и пирами.
-
В консольном интерфейсе предоставлена возможность экспорта ключей командой «ipfs key export» без остановки фонового процесса ipfs.
-
В шлюзах реализована возможность загрузки произвольных графов IPLD (InterPlanetary Linked Data, пространство имён для адресации ресурсов на основе хэшей) через обработчик
/api/v0/dag/export
, выполняющий функцию, аналогичную команде «ipfs dag export». Экспорт осуществляется в формате архива DAG. Полученный IPLD даёт пользователю возможность удостовериться, что загруженные с публичного шлюза данные соответствуют запрошенному символьному имени (например, получив файлhttps://somegateway.example.net/ipfs/bafyexample
можно проверить его соответствие с хэшем содержимого, изначально связанным с символьным именем). -
Предоставлена возможность определения собственного DNS-резолвера, использующего протокол «DNS over HTTPS», который будет применяться вместо резолвера из настроек операционной системы. В том числе можно переопределять резолвер для отдельных доменов первого уровня. В DNSLink, механизме для привязки обычных DNS-имён к адресам IPFS, выборочная замена резолвера может применяться для создания доменный имён, не связанных с ICANN, например, можно подключить резолвер «https://eth.link/dns-query» для обработки доменов первого уровня ».eth», которые официально не утверждены в ICANN.
-
Компоненты для миграции на новые версии go-ipfs разделены на отдельные пакеты для ускорения загрузки и упрощения организации обновлений в конфигурациях с собственными плагинами. Автоматизирован процесс загрузки обновлений через IPFS и добавлены настройки для упрощения применения обновлений в условиях отсутствия сетевого соединения или блокировки межсетевым экраном.
>>> Подробности