Wydanie globalnego zdecentralizowanego systemu plików IPFS 0.7

Przedstawiony wydanie zdecentralizowanego systemu plików IPFS 0.7 (InterPlanetary File System), tworzący globalne wersjonowane przechowalnie plików, zorganizowane w formie sieci P2P, utworzonej z systemów uczestników. IPFS łączy pomysły wcześniej zrealizowane w takich systemach jak Git, BitTorrent, Kademlia, SFS i Web, przypominając jeden „roje” BitTorrent (węzły uczestniczące w udostępnianiu), wymieniające się obiektami Git. IPFS różni się adresowaniem na podstawie treści, a nie lokalizacji czy dowolnymi nazwami. Kod referencyjnej implementacji napisany jest w języku Go i rozpowszechniany na licencjach Apache 2.0 i MIT.

W nowej wersji domyślnie wyłączono transport SECIO, którego zastąpieniem w poprzednim wydaniu był transport NOISE, oparty na protokole Noise i rozwijany w ramach modułowego stosu sieciowego dla aplikacji P2P libp2p. Jako zapasowy transport pozostawiono TLSv1.3. Administratorom węzłów, korzystających ze starych wersji IPFS (Go IPFS < 0.5 lub JS IPFS < 0.47), zaleca się aktualizację oprogramowania, aby uniknąć spadku wydajności.

W nowej wersji przeprowadzono również przejście na domyślne użycie kluczy ed25519 zamiast RSA. Wsparcie dla starych kluczy RSA zostało zachowane, ale nowe klucze będą teraz generowane z użyciem algorytmu ed25519. Wykorzystanie wbudowanych kluczy publicznych ed25519 rozwiązuje problem przechowywania kluczy publicznych; na przykład, do weryfikacji podpisanych danych przy użyciu ed25519 wystarcza informacja o PeerId. Nazwy klucza w ścieżkach IPNS są teraz kodowane z użyciem algorytmu base36 CIDv1 zamiast base58btc.

Oprócz zmiany domyślnych typów kluczy w IPFS 0.7 dodano możliwość rotacji kluczy identyfikacyjnych. Aby zmienić klucz węzła, teraz można wykonać polecenie "ipfs key rotate". Ponadto dodano nowe polecenia do importowania i eksportowania kluczy ("ipfs key import" i "ipfs key export"), które można stosować w celu tworzenia kopii zapasowych, a także polecenie "ipfs dag stat" do wyświetlania statystyk dotyczących DAG (Directed Acyclic Graphs).

Przypomnijmy, że w IPFS link do dostępu do pliku jest bezpośrednio związany z jego zawartością i zawiera kryptograficzny hash tej zawartości. Adres pliku nie może być dowolnie zmieniany; może zmienić się tylko po modyfikacji zawartości. Podobnie nie można wprowadzić zmiany w pliku bez zmiany adresu (stara wersja pozostanie pod dotychczasowym adresem, a nowa będzie dostępna pod innym adresem, ponieważ hash zawartości pliku ulegnie zmianie). Biorąc pod uwagę, że identyfikator pliku zmienia się przy każdej modyfikacji, aby za każdym razem nie przekazywać nowych linków, dostępne są usługi do przypisywania stałych adresów, które uwzględniają różne wersje pliku (IPNS), lub przypisania aliasu na wzór tradycyjnych systemów plików i DNS (MFS (Mutable File System) i DNSLink).

W podobny sposób jak w BitTorrent dane są przechowywane bezpośrednio na systemach uczestników, którzy wymieniają się informacjami w trybie P2P, bez odniesienia do scentralizowanych węzłów. W przypadku potrzeby uzyskania pliku o określonej zawartości system znajduje uczestników, którzy mają ten plik i przekazuje 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 jego dystrybucji. Aby zidentyfikować uczestników sieci, na węzłach których znajduje się interesująca zawartość, jest używane rozproszona tabela haszowa (DHT). Aby uzyskać dostęp do globalnego systemu plików IPFS, można używać protokołu HTTP lub zamontować wirtualny system plików /ipfs za pomocą modułu FUSE.

IPFS pomaga rozwiązywać takie problemy, jak niezawodność przechowywania (jeśli pierwotne źródło przechowywania ulegnie awarii, plik można pobrać z systemów innych użytkowników), przeciwdziałanie cenzurowaniu treści (aby zablokować, trzeba by zablokować wszystkie systemy użytkowników, na których znajduje się kopia danych) oraz organizację dostępu w przypadku braku bezpośredniego połączenia z internetem lub przy złej 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ć stosowany jako podstawa do tworzenia nowych usług, na przykład do organizacji pracy stron, które nie są powiązane z serwerami, lub do tworzenia rozproszonych aplikacji.

Wydanie globalnego zdecentralizowanego systemu plików IPFS 0.7

Źródło: opennet.ru

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster