Wydanie globalnego zdecentralizowanego systemu plików IPFS 0.6

opublikowany wydanie zdecentralizowanego systemu plików IPFS 0.6 (InterPlanetary File System), który tworzy globalny wersjonowany magazyn plików, wdrażany w formie sieci P2P utworzonej z systemów uczestników. IPFS łączy pomysły zaimplementowane wcześniej w systemach takich jak Git, BitTorrent, Kademlia, SFS i Web i przypomina pojedynczy „roj” BitTorrenta (równieżnicy biorący udział w dystrybucji) wymieniający obiekty Git. IPFS wyróżnia się adresowaniem na podstawie treści, a nie lokalizacji i dowolnych nazw. Referencyjny kod implementacyjny jest napisany w Go i dystrybuowane przez na licencjach Apache 2.0 i MIT.

Nowa wersja wyróżnia się domyślnym włączeniem transportu opartego na protokołach QUIC, który jest nakładką na protokół UDP, która obsługuje multipleksowanie wielu połączeń i zapewnia metody szyfrowania równoważne TLS/SSL. W IPFS gniazdo akceptowania połączeń UDP jest automatycznie uruchamiane na tym samym adresie i porcie sieciowym, co procedura obsługi transportu oparta na protokole TCP. QUIC jest używany zarówno do połączeń przychodzących, jak i wychodzących, a podczas łączenia się z nowymi węzłami, jeśli QUIC jest niedostępny, powraca do używania protokołu TCP.

Drugą ważną innowacją było wsparcie bezpiecznego transportu HAŁAS, na podstawie na protokole Hałas i rozwinięte wewnątrz libp2p, modułowy stos sieciowy do zastosowań P2P. Po wstępnej negocjacji połączenia cała późniejsza komunikacja pomiędzy uczestnikami jest szyfrowana i chroniona przed podsłuchem.
HAŁAS zastąpił transport SECIO, ale protokół TLS 1.3 jest nadal używany jako priorytetowa metoda szyfrowania połączeń między węzłami. NOISE jest dość prosty we wdrożeniu i jest pozycjonowany jako uniwersalny transport międzyplatformowy, który można zaimplementować w różnych językach programowania.

Nowa wersja zapewnia także możliwość dodawania niestandardowych stron „404 Not Found” i opcjonalną obsługę metody kodowania Base36, która jest optymalna w przypadku danych alfanumerycznych niewrażliwych na wielkość liter, takich jak nazwy domen (przy użyciu Base32 klucze IPNS Ed25519 są o dwa bajty większe limit wielkości subdomeny, a przy Base36 mieszczą się w limicie). Dodatkowo do ustawień dodano opcję
«zaglądać„, który definiuje listę węzłów, z którymi można się połączyć, utrzymać połączenie i ponownie nawiązać połączenie, aby zidentyfikować „trwałe” połączenia między często używanymi urządzeniami równorzędnymi.

Przypomnijmy, że w IPFS łącze umożliwiające dostęp do pliku jest bezpośrednio powiązane z jego zawartością i zawiera kryptograficzny skrót zawartości. Adresu pliku nie można dowolnie zmieniać, można go zmienić jedynie po zmianie zawartości. Podobnie nie da się dokonać zmian w pliku bez zmiany adresu (stara wersja pozostanie pod tym samym adresem, a nowa będzie dostępna pod innym adresem, ponieważ zmieni się skrót zawartości pliku). Mając na uwadze, że identyfikator pliku zmienia się przy każdej zmianie, aby nie przenosić za każdym razem nowych linków, świadczone są usługi linkowania stałych adresów, które uwzględniają różne wersje pliku (IPN), lub nadanie aliasu przez analogię z tradycyjnym FS i DNS (MFS (Zmienny system plików) i DNSLink).

Analogicznie do BitTorrenta, dane są przechowywane bezpośrednio w systemach uczestników wymieniających informacje w trybie P2P, bez przywiązania do scentralizowanych węzłów. Jeżeli konieczne jest otrzymanie pliku o określonej treści, system znajduje uczestników posiadających ten plik i wysyła go ze swoich systemów w częściach w kilku wątkach. Po pobraniu pliku do swojego systemu uczestnik automatycznie staje się jednym z punktów jego dystrybucji. Aby określić uczestników sieci, na których węzłach znajduje się interesująca treść używany rozproszona tablica mieszająca (DHT). Aby uzyskać dostęp do globalnego IPFS FS, można użyć protokołu HTTP lub zamontować wirtualny FS /ipfs za pomocą modułu FUSE.

IPFS pomaga rozwiązać problemy takie jak niezawodność przechowywania (w przypadku wyczerpania się pierwotnej pamięci, plik można pobrać z systemów innych użytkowników), odporność na cenzurę treści (blokowanie wymaga zablokowania wszystkich systemów użytkownika, które posiadają kopię danych) i organizowanie dostępu w przypadku braku bezpośredniego połączenia z Internetem lub jeśli jakość kanału komunikacji jest słaba (można pobierać dane za pośrednictwem pobliskich uczestników w sieci lokalnej). Oprócz przechowywania plików i wymiany danych, IPFS może służyć jako podstawa do tworzenia nowych usług, na przykład do organizowania działania witryn niepowiązanych z serwerami lub do tworzenia rozproszonych aplikacje.

Wydanie globalnego zdecentralizowanego systemu plików IPFS 0.6

Źródło: opennet.ru

Dodaj komentarz