Wprowadzono wersję zdecentralizowanego systemu plików IPFS 0.9 (InterPlanetary File System), tworzącego globalne, wersjonowane repozytorium plików, rozwinięte w formie sieci P2P złożonej z systemów uczestników. IPFS łączy pomysły wcześniej zrealizowane w takich systemach jak Git, BitTorrent, Kademlia, SFS i Web, przypominając jednolity „roju” BitTorrent (udziałowców w udostępnianiu), wymieniającego się obiektami Git. IPFS wyróżnia się adresowaniem treści, a nie miejscem przechowywania i dowolnymi nazwami. Kod referencyjnej implementacji napisany jest w języku Go i rozpowszechniany na licencjach Apache 2.0 i MIT.
W nowej wersji:
- W bramkach zaimplementowano możliwość ładowania dowolnych grafów IPLD (InterPlanetary Linked Data, przestrzeń nazw do adresowania zasobów na podstawie hash'y) za pośrednictwem obsługiwanej przez „/api/v0/dag/export” funkcji, pełniącej rolę analogiczną do polecenia „ipfs dag export”. Eksport odbywa się w formacie archiwum DAG (Directed Acyclic Graph). Uzyskany IPLD umożliwia użytkownikowi potwierdzenie, że dane załadowane z publicznej bramki odpowiadają żądanemu symbolicznemu nazwisku (na przykład, uzyskując plik „/ipfs/bafyexample”, można zweryfikować jego zgodność z hashem treści pierwotnie powiązanym z symbolicznym nazwiskiem).
- Dodano możliwość definiowania własnego resolvera DNS, korzystającego z protokołu „DNS over HTTPS”, który będzie używany zamiast resolvera z ustawień systemu operacyjnego. Można również nadpisywać resolver dla poszczególnych domenów pierwszego poziomu. W DNSLink, mechanizmie do łączenia zwykłych nazw DNS z adresami IPFS, selektywna zamiana resolvera może być stosowana do tworzenia nazw domen, które nie są powiązane z ICANN; na przykład można podłączyć resolver „https://eth.link/dns-query” do przetwarzania domen pierwszego poziomu „.eth”, które nie są oficjalnie zatwierdzone przez ICANN.
- Zaktualizowano interfejs webowy (WebUI), w którym wprowadzono eksperymentalne wsparcie dla przypinania zewnętrznych usług (analogicznie do polecenia „ipfs pin remote service”). Zmieniono układ ekranów do pracy z plikami i peerami.
- W interfejsie CLI wprowadzono możliwość eksportowania kluczy za pomocą polecenia „ipfs key export” bez zatrzymywania procesu w tle ipfs.
- Dodano eksperymentalnego klienta DHT do wyszukiwania danych przy użyciu rozproszonej tablicy haszującej, który różni się od rozwiązania opartego na IPNS wyższą wydajnością.
- Komponenty do migracji na nowe wersje go-ipfs są podzielone na osobne pakiety, aby przyspieszyć ładowanie i uprościć organizację aktualizacji w konfiguracjach z własnymi wtyczkami. Proces ładowania aktualizacji przez IPFS został zautomatyzowany, a dodatkowe ustawienia uproszczają zastosowanie aktualizacji w warunkach braku połączenia sieciowego lub zablokowania przez zaporę sieciową.
Przypominamy, że w IPFS link do uzyskania dostępu do pliku jest bezpośrednio powiązany z jego zawartością i obejmuje kryptograficzny skrót tej zawartości. Adres pliku nie może być dowolnie zmieniany, może zmienić się tylko po zmianie zawartości. Podobnie nie można wprowadzić zmiany w pliku bez zmiany adresu (stara wersja pozostanie pod poprzednim adresem, a nowa będzie dostępna pod innym adresem, ponieważ skrót zawartości pliku się zmieni). Biorąc pod uwagę, że identyfikator pliku zmienia się przy każdej zmianie, aby nie wymieniać za każdym razem nowych linków, dostępne są usługi do przypisania stałych adresów, które uwzględniają różne wersje pliku (IPNS), lub do utrwalenia pseudonimu na wzór tradycyjnych FS i DNS (MFS (Mutable File System) i DNSLink).
Analogicznie do BitTorrent dane są przechowywane bezpośrednio na systemach uczestników, którzy wymieniają informacje w trybie P2P, bez łączenia z centralnymi węzłami. Gdy zajdzie potrzeba uzyskania pliku o określonej zawartości, system znajduje uczestników, którzy ten plik posiadają i dostarcza go z ich systemów w częściach w kilku strumieniach. Po pobraniu pliku na swój system uczestnik automatycznie staje się jednym z punktów, z których plik jest udostępniany. Do określenia uczestników sieci, na węzłach których dostępna jest interesująca zawartość, używana jest rozproszona tabela haszująca (DHT). Do dostępu do globalnego FS IPFS można używać protokołu HTTP lub zamontować wirtualny FS /ipfs przy pomocy modułu FUSE.
IPFS pomaga rozwiązać takie problemy jak niezawodność przechowywania (jeśli pierwotne źródło przechowywania zostanie usunięte, plik można pobrać z systemów innych użytkowników), przeciwdziałanie cenzurowaniu treści (aby zablokować, trzeba zablokować wszystkie systemy użytkowników, w których znajduje się kopia danych) oraz organizacja dostępu w przypadku braku bezpośredniego połączenia z internetem lub przy słabej jakości łącza (można pobrać dane przez najbliższych uczestników w lokalnej sieci). Oprócz przechowywania plików i wymiany danych, IPFS może być wykorzystywane jako podstawa do tworzenia nowych usług, na przykład do organizacji pracy stron internetowych, które nie są związane z serwerami, lub do tworzenia rozproszonych aplikacji.

Źródło: opennet.ru
