Skip to content

Распределённая хеш-таблица (DHT)

Как узлы IPFS находят друг друга и обнаруживают, у кого есть нужный вам контент.

Что такое DHT?

Распределённая хеш-таблица — это децентрализованная система поиска. Представьте её как телефонный справочник, которым не владеет ни один человек — вместо этого каждый участник хранит несколько страниц и знает, кого спросить о недостающих.

В IPFS DHT отображает CID на сетевые адреса узлов, имеющих соответствующий контент. Когда вы запрашиваете файл по CID, DHT помогает найти узлы, которые могут его предоставить.

Как это работает в IPFS

IPFS использует вариант Kademlia DHT. Каждый узел поддерживает таблицу маршрутизации ближайших узлов (по расстоянию XOR между идентификаторами узлов). Когда узел хочет найти контент:

  1. Он вычисляет расстояние XOR между CID и известными идентификаторами узлов
  2. Он спрашивает ближайшие известные узлы: «у кого есть этот CID?»
  3. Эти узлы либо имеют контент, либо указывают на узлы, которые ближе
  4. Поиск сходится — каждый переход приближает к узлу, имеющему файл
  5. Контент получается напрямую от предоставляющего узла

TIP

Этот поиск обычно занимает всего несколько переходов — даже в сети из миллионов узлов файл может быть найден за 20-30 шагов.

Записи провайдеров

Когда узел закрепляет контент, он публикует запись провайдера в DHT, объявляя: «У меня есть CID X, и мой адрес — Y.» Эти записи истекают примерно через 24 часа и должны периодически обновляться. Поэтому активное закрепление важно — без него записи провайдеров истекают и контент становится необнаружимым.

Почему вам не нужно думать о DHT

IPFS.NINJA берёт на себя все взаимодействия с DHT. Когда вы загружаете файл:

  • Наш кластер закрепляет файл и автоматически публикует записи провайдеров
  • Записи провайдеров обновляются непрерывно — ваш контент остаётся обнаружимым
  • Наш шлюз разрешает CID через DHT при обработке запросов
  • Вы просто используете CID и URL шлюзов — DHT невидим