Что такое Distributed Hash Table (DHT)?
Distributed Hash Table (DHT) представляет собой общую адресную книгу, которая распределяет задачу поиска данных между множеством независимых компьютеров. Вместо одного сервера, который отвечает, где хранится фрагмент данных, Distributed Hash Table (DHT) позволяет сети совместно указать нужное место. Представьте, что вы спрашиваете умную толпу, где находится файл, и толпа отвечает за несколько быстрых переходов.
Distributed Hash Table (DHT) хранит ваши файлы навсегда. Не совсем. Она сохраняет указатели на то, где найти объекты, а не сами объекты, и данные по-прежнему находятся у пиров, которые выбрали их размещать.
Как работает Distributed Hash Table (DHT)
Представьте, что ваше приложение спрашивает сообщество о предмете, помеченном хешем содержимого. Вот краткая последовательность действий.
- Шаг 1: Вы присоединяетесь к рою и становитесь одним из узлов.
- Шаг 2: Вы хотите объект X, поэтому берёте его содержимое и вычисляете хеш, который служит уникальным идентификатором.
- Шаг 3: Вы обращаетесь к ближайшим пирам, они направляют ваш запрос к пирам, математически более близким к этому идентификатору.
- Шаг 4: Запрос попадает к ответственным пирам, которые сообщают, у кого сейчас есть объект X.
- Шаг 5: Вы подключаетесь к этим пирам и загружаете данные напрямую у них. Быстро, аккуратно, готово.
Пример из реальной жизни: IPFS (InterPlanetary File System) использует Distributed Hash Table (DHT) для обнаружения, какие пиры хранят содержимое для данного хеша, а затем получает данные от них.
Почему Distributed Hash Table (DHT) важна
Зачем об этом заботиться, если не только ради технического интереса?
- Польза: Она находит контент быстро без центральных контролирующих узлов, что обеспечивает скорость и устойчивость.
- Перспектива: Это ключевой компонент decentralized сетей, где сообщество выполняет поиск и уменьшает единичные точки отказа.
- Актуальность: Обнаружение пиров для файлообмена, доступность данных для dapps и даже поиск контрагентов в одноранговых транзакциях.
Если кто-то говорит, что Distributed Hash Table (DHT) содержит ваши данные, спросите, где сами данные хранятся и сколько пиров закрепляют или дублируют их. Указатели это не резервные копии.
Ключевые характеристики Distributed Hash Table (DHT)
Что делает её достаточно особенной для широкого использования в крипто и одноранговых системах:
- Поиск: По ключу она находит ответственных пиров примерно за логарифмическое число прыжков, даже при больших масштабах.
- Распределение: Индекс общий, поэтому ни один сервер не может отключить обнаружение.
- Устойчивость: Пиры могут приходить и уходить, и сеть по-прежнему перенаправляет запросы при изменениях участников.
- Проверяемость: Ключи представляют собой хеши, поэтому то, что вы загружаете, можно сверить с ключом.
Варианты
Существуют разные варианты с разными стилями маршрутизации и компромиссами:
- Kademlia: Широко используется, маршрутизирует по XOR расстоянию и отдает предпочтение долгоживущим пирам.
- Chord: Располагает пиры в кольцо и маршрутизирует с помощью таблиц указателей.
- Pastry: Использует маршрутизацию по префиксу с учетом близости узлов.
Distributed Hash Table (DHT) это каталог и система маршрутизации, а не источник истины. Вы по-прежнему проверяете содержимое по его хешу и относитесь к заявлениям пиров с здоровым скептицизмом.
Пример
Вы запрашиваете хеш содержимого в приложении, которое поддерживает IPFS (InterPlanetary File System), Distributed Hash Table (DHT) возвращает несколько адресов пиров, а ваше приложение получает байты напрямую от этих пиров.
Интересный факт
Kademlia, наиболее популярный вариант DHT, появился в 2002 году и тихо повлиял на многое, от magnet ссылок BitTorrent до современного контентно адресного хранения, используемого криптопроектами. Старая публикация, заметное влияние.
Итог
Кратко: Distributed Hash Table (DHT) это адресная книга, которая помогает одноранговым сетям находить нужное без обращения к центральному серверу. Простая идея, большое влияние.
