выпуск децентрализованной файловой системы (InterPlanetary File System), образующей глобальное версионированное хранилище файлов, развёрнутое в форме P2P-сети, образованной из систем участников. IPFS комбинирует идеи, ранее реализованные в таких системах, как Git, BitTorrent, Kademlia, SFS и Web, и напоминает единый «рой» BitTorrent (пиры, участвующие в раздаче), обменивающийся Git-объектами. IPFS отличается адресацией по содержимому, а не месту размещения и произвольным именам. Код эталонной реализации написан на языке Go и под лицензиями Apache 2.0 и MIT.
В новой версии произведено отключение по умолчанию транспорта , на смену которому в прошлом выпуске был предложен транспорт , protokollil и развиваемый в рамках модульного сетевого стека для P2P-приложений . В качестве запасного транспорта оставлен 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).
Tuletame meelde, et IPFS-is on faili juurdepääsulink otseselt seotud selle sisuga ja sisaldab sisu krüptograafilist räsihd. Faili aadressi ei saa meelevaldselt ümber nimetada, see võib muutuda ainult sisu muutmisel. Samamoodi ei saa faili muuta ilma, et aadress muutuks (vana versioon jääb endisele aadressile ja uus on saadaval teise aadressi kaudu, kuna faili sisu räsihd muutub). Arvestades, et faili identifikaator muutub iga kord, kui toimub muudatus, on kergem pakkuda teenuseid püsivate aadresside sidumiseks, mis arvestavad erinevaid faili versioone (), või kinnitada pseudonüüdide kasutamine sarnasel viisil nagu traditsioonilised FS ja DNS ( (Mutable File System) ja ).
Sarnaselt BitTorrentile salvestatakse andmed otse osalejate süsteemides, kes vahetavad teavet P2P režiimis, ilma tsentraliseeritud sõlmede seotuse vajaduseta. Kui on vaja teatud sisu faili hankida, leiab süsteem osalejad, kellel see fail olemas, ning edastab selle nende süsteemidest osade kaupa mitmesugustes voogudes. Pärast faili oma süsteemi allalaadimist muutub osaleja automaatselt üheks selle jagamise punktiks. Osalejate määramiseks, kelle sõlmedes on huvipakkuv sisu, kasutatakse jaotatud räsi tabelit (). Globaalsetele FAIL- süsteemidele IPFS pääseb juurde HTTP protokolli kaudu või saab ühendada virtuaalse FAIL-i süsteemi /ipfs FUSE mooduli abil.
IPFS aitab lahendada selliseid probleeme nagu andmete usaldusväärne salvestamine (kui algne salvestuskoht on rikutud, saab faili laadida teiste kasutajate süsteemidest), sisu tsensuuri vastane võitlus (sisukeskkonna blokeerimine nõuab kõigi nende süsteemide blokeerimist, mis sisaldavad andmeid) ning juurdepääsu korraldamine otseühenduse puudumisel internetti või halva kanalikvaliteedi korral (andmeid saab laadida kohalike võrgustiku osalejate kaudu). Lisaks failide salvestamisele ja andmete vahetamisele võib IPFS-i kasutada ka uute teenuste loomiseks, näiteks serveritest sõltumatute veebisaitide toimimise korraldamiseks või hajutatud rakenduste loomiseks. .
Allikas: opennet.ru
