Представена е версията на децентрализирана файлова система IPFS 0.9 (InterPlanetary File System), която формира глобално версионирано хранилище на файлове, внедрено под формата на P2P мрежа, съставена от системи на участниците. IPFS комбинира идеи, реализирани по-рано в системи като Git, BitTorrent, Kademlia, SFS и Web, и напомня на единен „рой“ BitTorrent (пиры, участващи в раздаването), обменящи Git обекти. IPFS се отличава с адресиране по съдържание, а не по място на разполагане и произволни имена. Кодът на референтната реализация е написан на Go и се разпространява под лицензите Apache 2.0 и MIT.
В новата версия:
- В шлюзовете е реализирана възможността за зареждане на произволни графи IPLD (InterPlanetary Linked Data, пространство за адресиране на ресурси на базата на хешове) чрез обработчик „/api/v0/dag/export“, изпълняващ функция, аналогична на командата „ipfs dag export“. Експортира се в архивен формат DAG (Ориентиран ацикличен граф). Полученият IPLD позволява на потребителя да се увери, че данните, заредени от публичния шлюз, отговарят на исканото символно име (например, след получаване на файл „/ipfs/bafyexample“, можете да проверите наличността му с хеша на съдържанието, първоначално свързано с символното име).
- Предоставена е възможност за определяне на собствен DNS резолвър, използващ протокола „DNS over HTTPS“, който ще бъде прилаган вместо резолвъра от настройките на операционната система. Включително може да се преопредели резолвърът за отделни домейни първи нива. В DNSLink, механизъм за свързване на обикновени DNS имена с адреси на IPFS, може да се приложи селективна замяна на резолвъра за създаване на домейни, несвързани с ICANN, например, може да се свърже резолвър „https://eth.link/dns-query“ за обработка на домейни от първо ниво „.eth“, които официално не са одобрени от ICANN.
- Обновен е web интерфейсът (WebUI), в който е добавена експериментална поддръжка за закрепване на външни услуги (аналог на командата „ipfs pin remote service“). Променен е дизайнът на екрана за работа с файлове и пирове.
- В CLI интерфейса е предоставена възможност за експортиране на ключове с командата „ipfs key export“ без спиране на фонова процеса ipfs.
- Добавен е експериментален клиент DHT за търсене на данни с помощта на разпределена хеш-таблица, който се отличава от решението на базата на IPNS с по-висока производителност.
- Компонентите за мигриране към новите версии на go-ipfs са разделени на отделни пакети, за да се ускори зареждането и да се опрости организацията на актуализациите в конфигурации с собствени плъгини. Процесът на автоматизирано зареждане на актуализации чрез IPFS е подобрен и са добавени настройки за опростяване на прилагането на актуализациите в условия на липса на мрежова свързаност или блокировка от защитна стена.
Напомняме, че в IPFS линкът за достъп до файл е пряко свързан със съдържанието му и включва криптографски хаш на съдържанието. Адресът на файла не може да бъде преназначен произволно, той може да се промени само след промяна на съдържанието. По аналогичен начин е невъзможно да се направи промяна в файла без промяна на адреса (старият вариант остава на предишния адрес, а новият ще бъде достъпен на друг адрес, тъй като хашът на съдържанието на файла ще се промени). Имайки предвид, че идентификаторът на файла се променя при всяка промяна, за да не се предават нови линкове всеки път, се предлагат услуги за свързване на постоянни адреси, които отчитат различните версии на файла (IPNS) или за фиксиране на псевдоним, по аналогия с традиционните ФС и DNS (MFS (Mutable File System) и DNSLink).
По аналогия с BitTorrent данните се съхраняват директно на системите на участниците, които обменят информация в P2P режим, без привързване към централизирани възли. При необходимост от получаване на файл с определено съдържание, системата намира участници, които имат този файл и го предоставя от техните системи на части в няколко потока. След като участникът зареди файла на своята система, той автоматично става една от точките за разпространение на него. За определяне на участниците в мрежата, на възлите на които присъства интересуващият контент, се използва разпределена хеш таблица (DHT). За достъп до глобалната ФС IPFS може да се използва протокол HTTP или да се монтира виртуална ФС /ipfs с помощта на модула FUSE.
IPFS помага за решаване на проблеми, като надеждност на съхранението (ако оригиналното хранилище бъде унищожено, файлът може да бъде изтеглен от системи на други потребители), противопоставяне на цензурата на съдържанието (за блокирането е необходимо да се блокират всички системи на потребители, на които има копие на данните) и организация на достъпа при липса на пряка връзка с интернет или при лошо качество на канала за комуникация (може да се изтеглят данни чрез най-близките участници в локалната мрежа). Освен съхранение на файлове и обмен на данни, IPFS може да се използва и като основа за създаване на нови услуги, например, за организиране на работа на сайтове, които не са свързани със сървъри, или за създаване на разпределени приложения.

Източник: opennet.ru
