Została wydana wersja zdecentralizowanego systemu plików IPFS 0.8 (InterPlanetary File System), który tworzy globalne, wersjonowane repozytorium plików, rozwijane w formie sieci P2P, składającej się z systemów uczestników. IPFS łączy idee wcześniej wdrożone w takich systemach jak Git, BitTorrent, Kademlia, SFS i Web, przypominając jednocześnie jeden „roji” BitTorrent (węzły uczestniczące w udostępnianiu), wymieniające się obiektami Git. IPFS różni się adresowaniem opartym na zawartości, a nie lokalizacji oraz dowolnymi nazwami. Kod referencyjnej implementacji został napisany w języku Go i jest rozpowszechniany na licencjach Apache 2.0 i MIT.
W nowej wersji:
- Zrealizowano możliwość tworzenia zewnętrznych usług do przypinania danych użytkowników (pinning – przypinanie danych do węzła, w celu zapewnienia, że ważne dane są zachowane). Przypięte do usługi dane mogą mieć różne nazwy, różniące się od identyfikatora zawartości (CID). Możliwa jest wyszukiwarka danych zarówno według nazwy, jak i CID. Do obsługi zapytań dotyczących przypinania danych zaproponowano API IPFS Pinning Service, które może być używane bezpośrednio w go-ipfs. W wierszu poleceń zaproponowano polecenie „ipfs pin remote”: ipfs pin remote service add mysrv https://my-service.example.com/api-endpoint myAccessToken ipfs pin remote add /ipfs/bafomydata —service=mysrv —name=myfile ipfs pin remote ls —service=mysrv —name=myfile ipfs pin remote rm —service=mysrv —name=myfile
- Przyspieszono operacje przypinania (pinning) i odpinania (unpinning) danych na lokalnym węźle. Zwiększenie wydajności i zmniejszenie zużycia pamięci jest szczególnie zauważalne podczas wykonywania operacji odczytu lub zmiany na systemach z dużą liczbą przypięć.
- Podczas tworzenia linków „https://” dla bram dodano możliwość przekazywania nazw DNSLink z użyciem subdomen. Na przykład, do załadowania nazwy „ipns://en.wikipedia-on-ipfs.org” oprócz wcześniej wspieranych linków „https://dweb.link/ipns/en.wikipedia-on-ipfs.org” teraz można używać linków „https://en-wikipedia—on—ipfs-org.ipns.dweb.link”, w których kropki w oryginalnych nazwach są zastępowane znakiem „-“, a istniejące znaki „-” są eskalowane jeszcze jednym podobnym znakiem.
- Rozszerzono wsparcie dla protokołu QUIC. Aby zwiększyć wydajność, dodano możliwość zwiększenia buforów odbierających dla UDP.
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
