Czym jest Distributed Hash Table (DHT)?
Distributed Hash Table (DHT) to wspólna książka adresowa, która rozdziela zadanie znajdowania danych między wiele niezależnych komputerów. Zamiast jednego serwera wskazującego, gdzie znajduje się fragment danych, Distributed Hash Table (DHT) pozwala sieci wspólnie wskazać właściwe miejsce. Można to porównać do zapytania rozgarniętej grupy, gdzie jest plik, a grupa odpowiada w kilku szybkich skokach.
Distributed Hash Table (DHT) przechowuje twoje pliki na zawsze. Nie do końca. Przechowuje informacje, gdzie ich szukać, a nie same pliki; dane nadal znajdują się na węzłach, które zdecydują się je udostępniać.
Jak działa Distributed Hash Table (DHT)
Wyobraź sobie aplikację pytającą grupę o element oznaczony skrótem zawartości. Oto krótki przebieg.
- Krok 1: Dołączasz do grupy i stajesz się jednym z węzłów.
- Krok 2: Chcesz element X, więc bierzesz jego zawartość i obliczasz skrót, który pełni rolę unikalnego identyfikatora.
- Krok 3: Pytasz pobliskie węzły, które kierują twoje zapytanie w stronę węzłów matematycznie bliższych temu identyfikatorowi.
- Krok 4: Zapytanie trafia w pobliże odpowiedzialnych węzłów, które zwracają informację, kto obecnie ma element X.
- Krok 5: Łączysz się z tymi węzłami i pobierasz dane bezpośrednio od nich. Szybko, prosto, gotowe.
Przykład z praktyki: IPFS (InterPlanetary File System) używa Distributed Hash Table (DHT) do odkrywania, które węzły przechowują zawartość dla danego skrótu, a następnie pobiera dane od nich.
Dlaczego Distributed Hash Table (DHT) ma znaczenie
Dlaczego warto zwrócić na to uwagę poza czystą satysfakcją techniczną?
- Zaleta: Znajduje zawartość szybko bez centralnych strażników, co daje prędkość i odporność.
- Rola: Jest ważnym składnikiem zdecentralizowanych sieci, gdzie grupa obsługuje wyszukiwania i zmniejsza pojedyncze punkty awarii.
- Znaczenie: Odkrywanie równorzędnych węzłów przy udostępnianiu plików, dostępność danych dla dapps i nawet znajdowanie kontrahentów w transakcjach peer to peer.
Gdy ktoś mówi, że Distributed Hash Table (DHT) ma twoje dane, zapytaj, gdzie same dane są przechowywane i ile węzłów je przypina lub replikuje. Wskaźniki nie są kopią zapasową.
Główne cechy Distributed Hash Table (DHT)
Co sprawia, że jest stosowana w projektach krypto i systemach peer to peer:
- Wyszukiwanie: Mając klucz, znajduje odpowiedzialne węzły w przybliżeniu w logarytmicznej liczbie skoków, nawet przy dużej skali.
- Rozproszenie: Indeks jest współdzielony, więc żaden pojedynczy serwer nie może przerwać mechanizmu odnajdywania.
- Odporność: Węzły mogą dołączać i odłączać się, a sieć potrafi nadal kierować zapytania mimo fluktuacji.
- Weryfikowalność: Klucze to skróty, więc to, co pobierasz, można sprawdzić względem klucza.
Warianty
Istnieją różne warianty, każdy z własnym stylem trasowania i kompromisami:
- Kademlia: Powszechnie używana, kieruje według odległości XOR i preferuje długotrwale działające węzły.
- Chord: Układa węzły w pierścień i kieruje za pomocą tablic wskazujących.
- Pastry: Wykorzystuje routowanie oparte na prefiksach z uwzględnieniem bliskości topologicznej.
Distributed Hash Table (DHT) to katalog i system trasowania, a nie baza prawdy. Nadal weryfikujesz zawartość po jej skrócie i traktujesz twierdzenia węzłów z zdrowym sceptycyzmem.
Przykład
Żądasz skrótu zawartości w aplikacji obsługującej IPFS (InterPlanetary File System), Distributed Hash Table (DHT) odpowiada kilkoma adresami węzłów, a twoja aplikacja pobiera bajty bezpośrednio od tych węzłów.
Ciekawostka
Kademlia, najpopularniejszy wariant Distributed Hash Table (DHT), pojawiła się w 2002 roku i dyskretnie wpłynęła na wszystko, od linków magnet w BitTorrent po nowoczesne magazyny adresowane zawartością używane w projektach krypto. Stary artykuł, trwały wpływ.
Podsumowanie
Krótko: Distributed Hash Table (DHT) to książka adresowa, która pomaga sieciom peer to peer znaleźć potrzebne zasoby bez pytania centralnego serwera. Prosty pomysł, duże konsekwencje.
