Выпуск глобальной децентрализованной файловой системы IPFS 0.7

Материал из Викиновостей, свободного источника новостей
Перейти к навигации Перейти к поиску

25 сентября 2020 года

Wikinews-logo-ru.svg

Представлен выпуск децентрализованной файловой системы IPFS 0.7 (InterPlanetary File System), образующей глобальное версионированное хранилище файлов, развёрнутое в форме P2P-сети, образованной из систем участников. IPFS комбинирует идеи, ранее реализованные в таких системах, как Git, BitTorrent, Kademlia, SFS и Web, и напоминает единый "рой" BitTorrent (пиры, участвующие в раздаче), обменивающийся Git-объектами. IPFS отличается адресацией по содержимому, а не месту размещения и произвольным именам. Код эталонной реализации написан на языке Go и распространяется под лицензиями Apache 2.0 и MIT.

В новой версии произведено отключение по умолчанию транспорта SECIO, на смену которому в прошлом выпуске был предложен транспорт NOISE, основанный на протоколе Noise и развиваемый в рамках модульного сетевого стека для P2P-приложений libp2p. В качестве запасного транспорта оставлен TLSv1.3. Администраторам узлов, использующих старые версии IPFS (Go IPFS < 0.5 или JS IPFS < 0.47) рекомендуется обновить ПО для того чтобы избежать снижения производительности.

В новой версии также осуществлён переход на использование по умолчанию ключей ed25519 вместо RSA. Поддержка старых RSA-ключей сохранена, но новые ключи теперь будут генерироваться с использованием алгоритма ed25519. Применение встроенных открытых ключей ed25519 решает проблему с хранением открытых ключей, например, для верификации подписанных данных при использовании ed25519 достаточно информации о PeerId. Имена ключа в IPNS-путях теперь кодируется с использованием алгоритма base36 CIDv1 вместо base58btc.

Помимо смены типа ключей по умолчанию в IPFS 0.7 добавлена возможность ротации идентификационных ключей. Для смены ключа узла теперь можно выполнить команду "ipfs key rotate". Кроме того, добавлены новые команды для импорта и экспорта ключей ("ipfs key import" и "ipfs key export"), которые можно применять с целью резервного копирования, а также команда "ipfs dag stat" для вывода статистики о DAG (Distributed Acyclic Graphs).

Напомним, что в IPFS ссылка для доступа к файлу непосредственно связана с его содержимым и включает криптографический хэш содержимого. Адрес файла невозможно произвольно переименовать, он может измениться только после изменения содержимого. Аналогично невозможно внести изменение в файл без изменения адреса (старый вариант останется на прежнем адресе, а новый будет доступен через другой адрес, так как хэш от содержимого файла изменится). Учитывая то, что идентификатор файла меняется при каждом изменении, чтобы каждый раз не передавать новые ссылки предоставляются сервисы для привязки постоянных адресов, учитывающих разные версии файла (IPNS), или закрепления псевдонима по аналогии с традиционными ФС и DNS (MFS (Mutable File System) и DNSLink).

По аналогии с BitTorrent данные непосредственно хранятся на системах участников, которые обмениваются информацией в режиме P2P, без привязки к централизованным узлам. При необходимости получить файл с определённым содержимым система находит участников, у которых имеется данный файл и отдаёт его с их систем частями в несколько потоков. После загрузки файла на свою систему участник автоматически становится одной из точек по его раздаче. Для определения участников сети на узлах которых присутствует интересующий контент используется распределённая хэш таблица (DHT). Для доступа к глобальной ФС IPFS может использоваться протокол HTTP или монтироваться виртуальная ФС /ipfs при помощи модуля FUSE.

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

 

Источники[править]

OpenNET logo.png
Creative Commons
Эта статья содержит материалы из статьи «Выпуск глобальной децентрализованной файловой системы IPFS 0.7», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Cartoon Robot.svg
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии:Выпуск глобальной децентрализованной файловой системы IPFS 0.7