Podczas konfigurowania rozproszonej sieci komputerowej można wdrożyć różne typy architektury systemów rozproszonych. W tym artykule przyjrzymy się dokładniej typom architektury systemu rozproszonego, ze szczególnym uwzględnieniem architektury systemu rozproszonego peer-to-peer w łańcuchu bloków.

Typy architektury systemów rozproszonych

Model klient-serwer

Aplikacje, takie jak poczta e-mail lub drukarki sieciowe, zazwyczaj korzystają z architektury klient-serwer. Zasadniczo dostawcy (zwani serwerami) i żądający (nazywani klientami) mają różne role. Serwer obsługuje wszystkie wymagania dotyczące przetwarzania, zarządzania danymi i obliczania, które są dostępne na żądanie klienta. Jeśli pozycja bazy danych ulegnie zmianie, klient nie musi nic robić. Należy zmienić tylko dane na serwerze.

W tym modelu serwer nie musi być pojedynczym urządzeniem; może to być wiele serwerów wykonujących podobne zadania w celu rozłożenia obciążenia. Model odnosi się do roli klienta i serwera, a nie do konkretnego sprzętu.

Diagram modelu klient-serwer

Diagram modelu klient-serwer. Źródło: Wikimedia Commons

Korzystamy z interakcji klient-serwer każdego dnia, za każdym razem, gdy korzystamy z laptopa lub smartfona do surfowania po Internecie, korzystania z aplikacji społecznościowych, grania w gry mobilne lub oglądania filmu w serwisie Netflix. Architektura systemu rozproszonego klient-serwer jest tym, o czym mówimy, gdy mówimy o „scentralizowanych” systemach komputerowych, w przeciwieństwie do blockchain jako zdecentralizowanej architektury systemu rozproszonego.

Chociaż jest to proste wyjaśnienie, istnieją różne typy architektury klient-serwer, na przykład trójwarstwowa. Model ten polega na oddzieleniu serwera, na którym działa sama aplikacja, od serwera, na którym znajdują się dane za aplikacją. Są inne, ale ponieważ nie są one istotne dla łańcucha bloków, nie będziemy ich tutaj analizować.

Model peer-to-peer

Architektura systemu rozproszonego peer-to-peer (P2P) nie ma żadnych określonych klientów ani serwerów. Sieć P2P to rozproszony system maszyn zwanych węzłami. Wszystkie węzły mogą pełnić rolę klienta i serwera jednocześnie lub w różnych momentach. Model jest nieodłącznie związany z samą nazwą – w sieci P2P każda maszyna jest równorzędnym partnerem, a nie klientem lub serwerem.

Sieci P2P stały się popularne po wprowadzeniu usług udostępniania plików, takich jak witryna do udostępniania muzyki Napster. Idea P2P zyskała swego rodzaju kultowy status, ponieważ systemy mogły działać niezależnie od jakiejkolwiek scentralizowanej kontroli. Dzisiaj, poza blockchainem, protokół udostępniania plików BitTorrent jest prawdopodobnie największą i najbardziej rozpoznawalną nazwą związaną z sieciami P2P.

Sieci nieustrukturyzowane a sieci strukturalne

Na podstawie tego, jak węzły łączą się ze sobą oraz w jaki sposób dane są indeksowane i odkrywane, sieci P2P są klasyfikowane jako ustrukturyzowane lub nieustrukturyzowane. W systemie nieustrukturyzowanym węzły po prostu tworzą ze sobą przypadkowe połączenia. Sieci nieustrukturyzowane są łatwe do zbudowania i skalowania w górę lub w dół.

Diagram nieustrukturyzowanej sieci peer-to-peer (źródło: Wikimedia Commons)

Jednak ze względu na brak struktury sprawia, że ​​indeksowanie jest znacznie trudniejsze. Jeśli węzeł chce znaleźć określony fragment danych lub inny węzeł, musi zalać sieć, aby dotrzeć do jak największej liczby węzłów, które mogą być potencjalnym celem wyszukiwania. Zużywa to więcej mocy sieci, ponieważ wszystkie węzły muszą przetwarzać wszystkie żądania. Ponadto, jeśli dane są rzadkie, mogą nie zostać znalezione, jeśli wszystkie węzły w sieci nie są w stanie przetworzyć wszystkich żądań. Przykłady sieci nieustrukturyzowanych to Kazaa i Limewire.

Z drugiej strony lokalizowanie dowolnych danych w sieci strukturalnej jest łatwe. Sieci ustrukturyzowane używają rozproszonej tablicy skrótów, aby określić, którzy rówieśnicy przechowują pliki i wersje plików. Chord to jeden z przykładów zorganizowanej sieci P2P.

Rozproszona tabela skrótów

Schemat rozproszonej tablicy skrótów, używanej w ustrukturyzowanych sieciach P2P. Źródło: Wikimedia Commons

Dlaczego Blockchain jest wyjątkowy

Jako czysty model architektury systemu rozproszonego, sieci P2P mają różne zalety i wyzwania. Kluczową zaletą jest odporność na przestoje, ponieważ nie ma centralnego punktu awarii.

Jednak ponieważ węzły w sieci P2P działają zarówno jako klient, jak i serwer, są bardziej podatne na ataki. Takie ataki mogą obejmować odmowę usługi lub dystrybucję złośliwego oprogramowania lub uszkodzonych danych. Jedno badanie odkrył, że 15 procent z pół miliona plików pobranych z Kazaa było zainfekowanych 52 różnymi wirusami.

Chociaż łańcuchy bloków nie są w 100 procentach niezniszczalne, Satoshi wymyślił genialne rozwiązanie problemu podatności, kiedy pisał Bitcoin biały papier. Wprowadzając protokół konsensusu, wszystkie węzły w sieci Bitcoin muszą zgodzić się, że transakcja jest ważna. Zastosowanie teorii gier powoduje, że każdy węzeł konkuruje o wydobycie następnego bloku.

Pomyślne wydobycie następnego bloku wiąże się z nagrodą, stanowiącą zachętę dla operatorów węzłów do utrzymania czystości sieci. Pod warunkiem, że 51 procent lub więcej operatorów węzłów pracuje w tandemie, aby nadal konkurować o następną nagrodę za blok, łańcuch bloków nadal działa bez ataków.

Wniosek

Oczywiście Bitcoin ma inne elementy, takie jak użycie haszowania i podpisów kryptograficznych, które tworzą magazyn wartości cyfrowej. Jednak rozwiązanie wymyślone przez Satoshi w celu przezwyciężenia nieodłącznych słabości w architekturze rozproszonego systemu P2P pozostaje jednym z najbardziej atrakcyjnych i innowacyjnych elementów łańcucha bloków.

Od czasu powstania Bitcoina wielu innych wymyśliło nowatorskie rozwiązania oparte na pomyśle Satoshiego. Ten rozwój trwa do dziś. Blockchain stanowi rewolucyjny krok w architekturze systemów rozproszonych. Ponadto technologia będzie ewoluować jeszcze przez wiele kolejnych lat.

Wyróżnione zdjęcie dzięki uprzejmości Pixabay

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me