Co to jest międzyplanetarny system plików (IPFS) i jak z niego korzystać?

Opublikowany: 2022-06-25
Kilka sześciokątnych płytek z symbolami „ludzkimi” połączonymi w sieć.
Andrij Yalanskyi / Shutterstock

Międzyplanetarny system plików (IPFS) to rozproszona sieć wymiany plików peer-to-peer, która jest dobrze przygotowana, aby stać się podstawą nowej, zdecentralizowanej sieci. Oto jak to działa i jak możesz zacząć z niego korzystać.

Spis treści

Zdecentralizowany Internet
Jak działa IPFS
Jak przechowywane są dane
Jak zainstalować IPFS
Interfejs sieciowy
Klient stacjonarny IPFS
Co jest następne?

Zdecentralizowany Internet

Mimo że ma charakter globalny, światowa sieć nadal jest siecią scentralizowaną . Przechowywanie danych w Internecie to głównie serwery — fizyczne lub wirtualne — w ogromnych farmach serwerów lub platformach w chmurze. Obiekty te są własnością jednej firmy. Serwery są własnością lub są wynajmowane przez inne firmy i są skonfigurowane i udostępniane w taki sposób, aby były dostępne dla świata zewnętrznego.

Co to jest HTTPS i dlaczego powinno mnie to obchodzić?
POWIĄZANE Co to jest HTTPS i dlaczego powinno mnie to obchodzić?

Każdy, kto chce uzyskać dostęp do informacji na tych serwerach, musi nawiązać połączenie HTTPS ze swojej przeglądarki do odpowiedniego serwera. Serwer znajduje się w centrum, obsługując wszystkie żądania dostępu do przechowywanych na nim danych.

Jest to oczywiście uproszczenie, ale opisuje ogólny model. Aby umożliwić skalowanie i zapewnić niezawodność, organizacje mogą wprowadzić do gry serwery lustrzane i sieci dostarczania treści. Ale nawet wtedy nadal istnieje stosunkowo niewielka i skończona liczba lokalizacji, do których ludzie mogą się udać, aby uzyskać dostęp do tych plików.

IPFS to implementacja zdecentralizowanej sieci. Jednym z najpopularniejszych zdecentralizowanych systemów jest Git, oprogramowanie do kontroli wersji. Git jest systemem rozproszonym, ponieważ każdy programista, który sklonował repozytorium, ma na swoim komputerze kopię całego repozytorium, w tym historii. Jeśli centralne repozytorium zostanie wyczyszczone, do jego przywrócenia można użyć dowolnej kopii repozytorium. IPFS przyjmuje tę rozproszoną koncepcję i stosuje ją do przechowywania plików i wyszukiwania danych.

IPFS został stworzony przez Juana Beneta i jest zarządzany przez założoną przez niego firmę Protocol Labs. Wzięli zdecentralizowany charakter Git i rozproszone, oszczędzające przepustowość techniki torrentów i stworzyli system plików, który działa we wszystkich węzłach sieci IPFS. I jest tu teraz i działa.

Jak działa IPFS

Zdecentralizowana sieć IPFS składa się ze wszystkich podłączonych do niej komputerów, znanych jako węzły . Węzły mogą przechowywać dane i udostępniać je każdemu, kto o to poprosi.

Jeśli ktoś zażąda pliku lub strony internetowej, kopia pliku jest buforowana w jego węźle. Ponieważ coraz więcej osób żąda tych danych, będzie istnieć coraz więcej kopii w pamięci podręcznej. Kolejne żądania dotyczące tego pliku mogą być spełniane przez dowolny węzeł — lub kombinację węzłów — który ma ten plik. Ciężar dostarczenia danych i spełnienia żądania jest stopniowo rozłożony na wiele węzłów.

Wymaga to nowego typu adresu internetowego. Zamiast routingu opartego na adresie, w którym musisz znać lokalizację danych i podać konkretny adres URL do tych danych, zdecentralizowana sieć korzysta z routingu opartego na treści .

BitTorrent dla początkujących: jak zacząć pobierać torrenty
POWIĄZANE BitTorrent dla początkujących: jak zacząć pobierać torrenty

Nie mówisz, gdzie są dane; żądasz tego, czego chcesz, a zostanie to znalezione i odzyskane dla Ciebie. Ponieważ dane są przechowywane na wielu różnych komputerach, wszystkie te komputery mogą jednocześnie przesyłać części danych do komputera, tak jak pobieranie torrentów. Ma to na celu zmniejszenie opóźnień, zmniejszenie przepustowości i uniknięcie wąskich gardeł powodowanych przez pojedynczy, centralny serwer.

Odejście od modelu scentralizowanego oznacza, że ​​hakerzy nie mają centralnego punktu do ataku. Jednak bezpośrednią troską większości ludzi będzie pomysł, że ich pliki, obrazy i inne media będą przechowywane na komputerach innych osób.

To nie do końca tak. IPFS nie jest czymś, z czym się łączysz i do którego przesyłasz. To nie jest rozproszony, wspólny Dropbox. Jest to coś, w czym uczestniczysz, hostując węzeł lub płacąc za korzystanie z profesjonalnie dostarczonego węzła hostowanego przez usługę w chmurze. A jeśli nie zdecydujesz się udostępnić lub opublikować czegoś, nie będzie to dostępne dla nikogo innego. W rzeczywistości termin „przesyłanie” jest mylący. To, co naprawdę robisz, to importowanie plików do własnego węzła.

Co to jest szyfrowanie i jak to działa?
POKREWNE Co to jest szyfrowanie i jak to działa?

Jeśli chcesz, aby plik był dostępny dla innych, ale chcesz, aby jego zawartość była ograniczona do kilku wybranych, powinieneś go zaszyfrować przed zaimportowaniem. Transmisja danych jest szyfrowana w obie strony, ale importowane pliki celowo nie są domyślnie szyfrowane. To pozostawia Ci wybór technologii szyfrowania. IPFS nie wprowadza formy szyfrowania przechowywania plików jako „oficjalnego” szyfrowania.

Jak przechowywane są dane

Dane są przechowywane w fragmentach o wielkości 256 KB, zwanych obiektami IPFS. Pliki większe niż ten są dzielone na tyle obiektów IPFS, ile potrzeba, aby pomieścić plik. Jeden obiekt IPFS na plik zawiera łącza do wszystkich innych obiektów IPFS, które tworzą ten plik.

Co to jest suma kontrolna (i dlaczego powinno Cię to obchodzić)?
POWIĄZANE Co to jest suma kontrolna (i dlaczego powinno cię to obchodzić)?

Gdy plik jest dodawany do sieci IPFS, otrzymuje unikalny, 24-znakowy identyfikator mieszający, zwany identyfikatorem zawartości lub CID. W ten sposób jest identyfikowany i odwoływany w sieci IPFS. Ponowne obliczenie skrótu podczas pobierania pliku weryfikuje integralność pliku. Jeśli sprawdzenie się nie powiedzie, plik został zmodyfikowany. Gdy pliki są legalnie aktualizowane, IPFS obsługuje wersjonowanie plików. Oznacza to, że nowa wersja pliku jest przechowywana wraz z poprzednią wersją. IPFS działa jak rozproszony system plików, a ta koncepcja wersjonowania zapewnia pewien stopień niezmienności tego systemu plików.

Załóżmy, że przechowujesz plik w IPFS na swoim węźle, a ktoś o imieniu Dave żąda go i pobiera go do swojego węzła. Następna osoba, która poprosi o ten plik, może otrzymać go od ciebie, od Dave'a, lub w sposób podobny do torrenta, z częściami pliku pochodzącymi z twojego węzła i od węzła Dave'a. Im więcej osób pobiera plik, tym więcej jest węzłów, które mogą się dołączyć i pomóc w kolejnych żądaniach plików.

Odśmiecanie będzie okresowo usuwać zbuforowane obiekty IPFS. Jeśli chcesz na stałe zapisać plik, możesz go przypiąć do swojego węzła. Oznacza to, że nie zostanie wyczyszczony podczas zbierania śmieci. Możesz zapłacić za przechowywanie u dostawców pamięci masowej w chmurze, którzy udostępniają Twoje dane w sieci IPFS i utrzymują je na stałe przypięte, a istnieją usługi specjalnie dostosowane do hostingu witryn internetowych, które są dostępne dla IPFS.

Jeśli coś w Twojej witrynie stanie się wirusowe i spowoduje ogromne fale ruchu w Twojej witrynie, strony zostaną zapisane w pamięci podręcznej we wszystkich węzłach, które pobierają te strony. Te zapisane w pamięci podręcznej strony będą używane do obsługi dalszych żądań stron, pomagając Ci jeździć na fali i zaspokajać popyt.

Oczywiście wszystko to zależy od wystarczającej liczby węzłów włączonej i dostępnej oraz od wystarczającej ilości przypiętych i buforowanych danych. A to wymaga uczestników.

Jak zainstalować IPFS

Użytkownicy systemu Windows mogą pobrać i uruchomić plik EXE znajdujący się na stronie wydania IPFS. Jeśli korzystasz z komputera Mac, pobierz plik DMG i przeciągnij go do aplikacji w normalny sposób. Jeśli wpadniesz w kłopoty, sprawdź oficjalną dokumentację.

W celach demonstracyjnych omówimy instalację na Ubuntu. Dostępne są pakiety Snap dla IPFS i klienta stacjonarnego IPFS w dowolnej dystrybucji Linuksa. Jeśli po prostu zainstalujesz IPFS, będziesz miał w pełni działający węzeł IPFS, który będziesz mógł kontrolować i administrować za pomocą przeglądarki. Jeśli zainstalujesz klienta stacjonarnego, nie musisz używać przeglądarki, klient zapewnia wszystkie te same funkcje.

Aby zainstalować Snapy, użyj:

 sudo snap zainstalować ipfs 

Instalowanie rdzenia IPFS snap

 sudo snap install ipfs-desktop 

Instalowanie przystawki klienta IPFS dla komputerów stacjonarnych

Teraz musisz uruchomić polecenie, aby zainicjować swój węzeł.

 init ipfs 

Inicjowanie węzła IPFS

Poniższe polecenia są sugerowane przez IPFS, jeśli napotkasz trudności, a demon nie działa lub nie możesz się z nim połączyć. Na wszystkich testowych komputerach, które wypróbowaliśmy, były one wymagane, więc równie dobrze możesz wydać je teraz:

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Origin '["webui://-", "http://localhost:3000", "http://127.0.0.1:5001", "https ://webui.ipfs.io"]' 

Konfigurowanie żądań krzyżowych w IPFS

 ipfs config --json API.HTTPHeaders.Access-Control-Allow-Methods '["PUT", "POST"]' 

Konfiguracja metod dostępu w IPFS

 sudo sysctl -w net.core.rmem_max=2500000 

Dostosowywanie rozmiaru bufora sieciowego

Mając to na uboczu, możesz uruchomić demona IPFS.

 demon ipfs 

Uruchamianie demona IPFS

Po uruchomieniu demon zgłasza dwa adresy, za pomocą których można się z nim połączyć. Jeden jest przeznaczony dla pulpitu IPFS, a drugi dla „webui” IPFS lub interfejsu użytkownika sieciowego.

Adresy połączenia demona IPFS

Interfejs sieciowy

Wklej adres webui http://127.0.0.1:5001/webui do przeglądarki, aby połączyć się z interfejsem IPFS.

Domyślną stroną jest ekran „Status”. To jest panel pokazujący stan i aktywność twojego węzła. Pokazuje rozmiar hostowanych plików oraz całkowity rozmiar buforowanych obiektów IPFS, które hostuje twój węzeł. Są to dane z innego miejsca w sieci IPFS. Pulpit nawigacyjny wyświetla również dwa wskaźniki w czasie rzeczywistym pokazujące przychodzący i wychodzący ruch IPFS oraz wykres w czasie rzeczywistym pokazujący historię tego ruchu.

Ekran stanu interfejsu internetowego IPFS

Aby przejść do innego ekranu, kliknij jedną z ikon na lewym pasku bocznym. Ekran „Pliki” pozwala zobaczyć pliki, które zaimportowałeś do IPFS. Możesz użyć niebieskiego przycisku „Importuj”, aby wyszukać pliki lub foldery na komputerze, które chcesz zaimportować do IPFS.

Ekran plików webui IPFS

IPFS wykorzystuje drzewa Merkle. Są to bardzo wydajny nadzbiór binarnych drzew mieszających, wynaleziony w 1979 roku przez Ralpha Merkle'a. Jeśli masz dużo drzew, masz las. Ikona "Eksploruj" otwiera ekran, który umożliwia przeglądanie różnych typów informacji przechowywanych w IPFS i jego lesie Merkle.

Ekran plików webui IPFS

Istnieje archiwum kreskówek ze znanej witryny XKCD. Kliknięcie tej opcji i wybranie kreskówek dostarcza wybraną kreskówkę do Ciebie przez IPFS.

Kreskówka XKCD dostarczona przez IPFS

Ikona "Peers" otwiera mapę świata, która pokazuje, gdzie znajdują się twoje połączenia IPFS na całym świecie.

Ekran równorzędnych interfejsów webowych IPFS

W ciągu kilku minut mieliśmy połączenia z Australii, Białorusi, Belgii, Kanady, Chin, Finlandii, Francji, Niemiec, Japonii, Malezji, Holandii, Norwegii, Polski, Portugalii, Rumunii, Rosji, Singapuru, Korei Południowej, Szwecji, Tajwanu, Turcja, Wielka Brytania i oczywiście USA.

Dowód pozytywny, jeśli w ogóle był potrzebny, że IPFS wywołał globalny szum. Oczywiście nie połączysz się z każdym dostępnym węzłem. To byłoby nieefektywne.

Klient stacjonarny IPFS

Znajdź IPFS Desktop w programie uruchamiającym aplikacje systemu. W środowisku GNOME, gdy demon IPFS jest zatrzymany , naciśnij klawisz „Super” i wpisz „ipfs”. Zobaczysz niebieską ikonę kostki IPFS.

Kliknij tę ikonę, a uruchomi się klient pulpitu. Uruchomi sam demon.

Wygląd i funkcjonalność klienta stacjonarnego są dokładnie takie same jak interfejsu internetowego, ale tym razem działa jako samodzielna aplikacja.

Klient stacjonarny IPFS

Dodatkową funkcją aplikacji jest wskaźnik aplikacji w obszarze powiadomień.

Zapewnia to szybki dostęp do menu opcji i wskaźnika sygnalizacji świetlnej stanu węzła. Wskaźnik jest zielony dla normalnej pracy, czerwony dla błędu i żółty dla uruchomienia.

Menu wskaźnika aplikacji IPFS

Co jest następne?

Nic nie zastąpi nagle istniejącej, scentralizowanej sieci, ale z czasem wszystko będzie ewoluować. Być może IPFS jest przebłyskiem tego, do czego może ewoluować.