Що таке Distributed Hash Table (DHT)?
Distributed Hash Table (DHT) є спільною адресною книгою, яка розподіляє завдання пошуку даних між багатьма незалежними комп'ютерами. Замість того, щоб один сервер відповідав, де зберігається фрагмент даних, DHT дозволяє мережі колективно вказати потрібне місце. Уявіть, що ви питаєте розумну групу, де файл, і група відповідає кількома швидкими переходами.
DHT не зберігає ваші файли назавжди. Не зовсім так. Вона зберігає вказівки, де знайти елементи, а не самі файли, і дані досі перебувають на вузлах, що вирішили їх зберігати.
Як працює Distributed Hash Table (DHT)
Уявіть, що ваш додаток питає групу про елемент, позначений хешем вмісту. Ось короткий перебіг подій.
- Крок 1: Ви приєднуєтеся до скупчення і стаєте одним з nodes.
- Крок 2: Вам потрібен елемент X, тому ви берете його вміст і обчислюєте хеш, що слугує унікальним ідентифікатором.
- Крок 3: Ви запитуєте сусідні вузли, які направляють ваш запит до вузлів, що математично ближчі до цього ідентифікатора.
- Крок 4: Запит потрапляє поблизу відповідальних вузлів, які повертають, хто наразі має елемент X.
- Крок 5: Ви підключаєтеся до цих вузлів і завантажуєте безпосередньо від них. Швидко, просто, готово.
Практичний приклад: IPFS (InterPlanetary File System) використовує DHT, щоб дізнатися, які вузли тримають контент для певного хешу, а потім завантажує дані від них.
Навіщо потрібна Distributed Hash Table (DHT)
То чому це має значення для вас, крім цікавості?
- Перевага: Вона знаходить контент швидко без центрального контролю, що забезпечує продуктивність і відмовостійкість.
- Перспектива: Це важливий елемент decentralized мереж, де учасники виконують пошуки і зменшують одиничні точки відмови.
- Застосування: Виявлення пірів для обміну файлами, доступність даних для dapp-ів і навіть пошук контрагентів у peer to peer transactions.
Коли хтось каже, що DHT має ваші дані, запитайте, де самі дані зберігаються і скільки вузлів фіксують або реплікують їх. Вказівки не є резервними копіями.
Ключові характеристики Distributed Hash Table (DHT)
Що робить її настільки корисною в крипто і однорангових системах:
- Пошук: За ключем знаходить відповідальних вузлів приблизно за логарифмічну кількість кроків, навіть у великому масштабі.
- Розподіл індексу: Індекс спільний, тому жоден сервер не може припинити можливість пошуку.
- Стійкість: Вузли можуть приєднуватися і виходити, і мережа все одно перенаправляє запити при зміні складу учасників.
- Перевірність: Ключі це хеші, тож те, що ви завантажуєте, можна перевірити за ключем.
Варіанти
Існують різні підходи, у кожного свій стиль маршрутизації та компроміси:
- Kademlia: Широко використовувана, маршрутизує за XOR відстанню і віддає перевагу довго життєздатним вузлам.
- Chord: Організовує вузли в кільце і використовує таблиці вказівників для маршрутизації.
- Pastry: Застосовує маршрутизацію за префіксом з урахуванням близькості.
DHT це довідник і система маршрутизації, а не база істини. Ви все одно перевіряєте контент за його хешем і ставитеся до заяв вузлів з обачливим скепсисом.
Приклад
Ви запитуєте хеш контенту в додатку, що підтримує IPFS (InterPlanetary File System), DHT відповідає кількома адресами вузлів, і ваш додаток отримує байти безпосередньо від цих вузлів.
Цікавий факт
Kademlia, найбільш популярний варіант DHT, з'явилася у 2002 році і непомітно вплинула на все, від посилань magnet у BitTorrent до сучасних сховищ з адресацією за вмістом, які застосовують криптопроекти. Стара стаття, помітний вплив.
Підсумок
Коротко: DHT це адресна книга, яка допомагає одноранговим мережам знаходити потрібне без звернення до центрального сервера. Проста ідея, великий вплив.
