Poznaj najlepszą alternatywę dla HTTP
Jeśli cofniemy się w przeszłość, to zobaczymy, jak daleko udało nam się zajść jako społeczność technologiczna. Od połączeń modemowych, które były potwornie powolne, do szybkich połączeń światłowodowych - to naprawdę niesamowite. Niemniej jednak sposób, w jaki ułożono Internet, raczej się nie zmienił. HyperText Transfer Protocol, czyli HTTP, to technologia, na której barkach spoczywa najwięcej obowiązków związanych z komunikowaniem danych w Internecie.
HTTP ma oczywiście wady i najwyższy czas, aby zastąpiło go coś innego. Przyjrzymy się tutaj InterPlanetary FileSystem (IPFS), który jest chyba najlepszą alternatywę dla standardu HTTP. Zanim jednak przejdziemy dalej, przypomnijmy sobie, czym jest HTTP.
HyperText Transfer Protocol
HTTP to protokół warstw aplikacji, który służy do transmitowania dynamicznych dokumentów, takich jak HTML. Zaprojektowano go głównie do komunikacji między przeglądarkami internetowymi a serwerami webowymi. HTTP oparte jest na klasycznym modelu klient-serwer, gdzie klient otwiera połączenia do utworzenia żądania i czeka na odpowiedź. Zajmuje się on tym, jak serwery traktują żądania i jak przeglądarki nimi zarządzają.
Dane przechowywane są w scentralizowanych serwerach, a dostęp do nich można uzyskać przez adresowanie oparte na lokacjach. Dystrybucja, zarządzanie i zabezpieczanie danych są wtedy łatwiejsze. Łatwiej jest też wtedy skalować możliwości serwera i klienta.
HTTP jest stosowany w sieci od 1996 roku i jest on szeroko używany nawet dzisiaj. Ma on już prawie 25 lat, a w świecie technologii to już niestety antyk. IPFS jest nowszy, szybszy i bardziej bezpieczny. No i można go używać zamiast HTTP.
Spójrzmy na kilka pułapek HTTP, które działają na korzyść IPFS.
Minusy
- Scentralizowany - pliki są hostowane w serwerach, które są w większości własnością dużych firm, takich jak Google, czy Amazon. Ułatwia to niestety rządom i cenzorom modyfikować zawartość.
- Historia stron internetowych - średnia żywotność strony internetowej to 100 dni. Po tym czasie znika ona na zawsze. Jest to niestety zbyt krótko jak na nasze czasy.
- Koszty - serwowanie danych po HTTP jest niezwykle kosztowne, zwłaszcza jeśli serwer jest po drugiej stronie kuli ziemskiej. HTTP pobiera pliki z jednego komputera na raz, zamiast ściągać części z kilku jednocześnie. HTTP zostało zaprojektowane do transferu stron internetowych, a nie dużej ilości danych. Nasze współczesne życie kręci się wokół danych, a my zaczęliśmy ulepszać nasze komputery i architekturę chmury. Fundamentalna architektura webowa to jednak nadal to samo, co kiedyś.
InterPlanetary FileSystem(IPFS)
IPFS to protokół typu peer-to-peer, dzięki któremu sieć będzie szybsza, bezpieczniejsza i bardziej otwarta. Jest to rozproszony system plików typu open source, tak, jak BitTorrent. Nazwa protokołu pochodzi od wizji intergalaktycznego Internetu J.C.R. Lickerdera i została stworzona przez Protocol Labs, czyli laboratorium badawczo-rozwojowe zajmujące się protokołami sieciowymi. Wcześniej było to startup Y Combinator.
Architektura IPFS składa się m.in. z rozproszonych tablic mieszających, block exchange i Merkle DAG - są to trzy kluczowe elementy IPFS.
Rozproszone tablice mieszające
Tablica mieszająca to struktura danych, która przechowuje je w formie par klucz-wartość. W rozproszonej tablicy klucz wartość, dane są rozprowadzane w sieci komputerów i koordynowane w celu zapewnienia dobrego dostępu w węzłach.
Block Exchanges
IPFS implementuje uogólnioną wizję wymiany danych w protokole BitTorrent, który nosi nazwę BitSwap. Umożliwia on łatwą koordynację transferu danych między milionami węzłów. FileCoin jest również oparty na tym protokole.
Merkle DAG
Merkle DAG to mieszanka drzew Merkle oraz DAG, czyli Directed Acyclic Graph. Merkle trees zapewniają to, że bloki danych, które są wymieniane w sieciach peer-to-peer, są poprawne, kompletne i nie są modyfikowane.
Weryfikacja ta odbywa się przez organizację bloków danych przy użyciu kryptograficznych funkcji skrótu.
Dlaczego IPFS?
Nie jest oparty o serwery
Kiedy serwer pada lub zostaje przeniesiony do innej lokalizacji, to linki związane z tym serwerem również przestaną działać. Niezależnie od tego, jakie tam mamy dane, to nie będzie się ich dało odzyskać, chyba że zachowało się je przed przejściem do nowej lokacji serwera.
Aby otrzymać dostęp do danych przechowywanych na serwerze, HTTP korzysta z adresowania danych opartego na lokalizacji. Jeśli chodzi natomiast o IPFS, to dostęp do danych uzyskuje się na podstawie adresowania opartego na zawartości.
Zamiast polegać na jednym serwerze, dane można uzyskać z jednego z milionów komputerów, które mają kopię danego pliku, podobnie do BitTorrent.
Decentralizacja
Internet w obecnym stanie to coś zupełnie innego, niż coś, czego się po nim spodziewaliśmy. Na początku miała to być zdecentralizowana sieć. Porównując to z tym, co mamy teraz, to widać, że to poszło w zupełnie inną stronę.
IPFS jest wierny oryginalnej wizji otwartej sieci. Prawdziwie zdecentralizowany internet byłby idealnym rozwiązaniem dla zapewnienia indywidualnej prywatności.
Redukcja kosztów
Jak już wspominaliśmy, koszt przechowywania dużych plików w HTTP jest niezwykle duży. Według strony IPFS P2P IPFS może zredukować wymaganą przepustowość łącza dla video aż do 60%. Duże serwisy streamingowe takie jak Netflix również szukały rozwiązań P2P dla streamingu video.
Artykuł z bloga IPFS szacuje, że Google wydało przynajmniej 2 742 860 dolarów na dystrybucję Gangam Style na Youtube. Chociaż nie jest to dużo z punktu widzenia całej korporacji, to jest to już jednak sporo dla jakiejś średniej firmy.
IPFS pozwoliłoby pobrać treści z wewnętrznej sieci Twojego własnego ISP. Nie trzeba wtedy przeskakiwać po kilku sieciach. Można pobrać nawet największe pliki, ponieważ każdy taki plik zostanie podzielony na kilka części, każda o wielkości 256 KBs.
Wyzwania
Nie jest user-friendly
Format adresowania treści nie jest user-friendly. Typowy link IPFS wyglądałby następująco:
ipfs.io/ipfs/bafybeiemxf5abjwjbikoz4mc3a3dla6ual3jsgpdr4cjr3oz3evfyavhwq
Jak widać, jest tutaj jakiś klucz. Tak naprawdę jest to hash klucza publicznego. Jest on powiązany z rekordem zawierającym informacje o hashu, do którego się linkuje - ten jest z kolei opisany przez odpowiedni klucz prywatny. IPFS zapewnia kolejny wariant o nazwie DNSLink, który jest szybszy i bardziej user-friendly od IPNS.
Dostępność miejsca do przechowywania
Jednym z najważniejszych problemów, jakie mamy z IPFS, to ciągłe udostępnianie plików. Ponieważ pliki były pobierane z cache węzłów w sieci, to jeśli wszystkie węzły, które mają kopie tego pliku, będą offline, to dany plik będzie już niedostępny dla wszystkich w danej sieci.
To bardzo podobne do torrentów, które nie mają seedów. Aby uniknąć tego problemu, IPFS ma protokół, który motywuje do przechowywania i współdzielenia danych w rozproszonej sieci. Protokół ten nosi nazwę FileCoin.
Dalsza lektura
Ponieważ IPFS to dosyć obszerne pojęcie, które ciężko wyjaśnić w jednym artykule, polecam zapoznać się z ich stroną internetową, aby dowiedzieć się, jak zacząć. Co więcej, polecam obejrzenie poniższego filmiku, aby dowiedzieć się jeszcze więcej.
Możesz również przeczytać dokumentację, jeśli chcesz poszperać w technicznych aspektach protokołu.
IPFS był rozwijany od 5 lat - ostatnio stał się trochę bardziej popularny po integracji z przeglądarką Brave, które stawia sobie prywatność użytkowników, jako priorytet. Za wcześnie jednak, aby powiedzieć, czy IPFS zmieni świat już na dobre, ponieważ to społeczność musi zaakceptować nową technologię.
Oryginał tekstu w języku angielskim przeczytasz tutaj.