Ответ 1
Распределенная таблица хешей
DHT - это просто хранилище ключей, распределенное по нескольким узлам в сети. Ключи распределяются между узлами с детерминированным алгоритмом. Каждый узел отвечает за часть хеш-таблицы.
Алгоритм маршрутизации позволяет выполнять запросы в хэш-таблице без знания каждого узла сети.
Например, в Chord DHT, который является относительно простой реализацией DHT, каждому узлу присваивается идентификатор и он отвечает за ключи, которые ближе к его идентификатору.
Представьте, что существует 4 узла с идентификаторами: 2a6c, 7811, a20f, e9c3. Данные с идентификатором 2c92 будут сохранены на узле 2a6c.
Представьте себе, что теперь вы знаете только узел 7811, и вы ищете данные с идентификатором eabc.
Вы запрашиваете узел 7811 для данных eabc. 7811 не имеет его, поэтому он запрашивает узел e9c3, который отправляет его на узел 7811, который отправляет его вам.
Умный алгоритм позволяет находить данные в прыжках O (log (N)). Без сохранения всей таблицы маршрутизации сети (адреса каждого узла). В основном вы задаете ближайший узел идентификатору данных, который, как вы знаете, сам задает ближайший узел, который он знает, и так далее, уменьшая размер прыжка на каждом шаге.
DHT очень масштабируема, поскольку данные распределены равномерно между узлами, а время поиска обычно растет в O (log (N)).
Blockchain
Блок-цепочка также является распределенной структурой данных, но ее назначение совершенно иное.
Подумайте об этом как о истории или книге. Цель состоит в том, чтобы хранить постоянно растущий список записей без возможности вмешательства и пересмотра.
Он в основном используется в валютной системе биткойна для отслеживания транзакций. Его свойство быть защищенным от несанкционированного доступа позволяет каждому узнать точное сальдо счета, зная его историю транзакций.
В блочной цепочке каждый узел сети хранит полные данные. Таким образом, это абсолютно не та же идея, что и DHT, в котором данные разделяются между узлами. Каждая новая запись в блокчейне должна быть проверена процессом, называемым "добыча", чьи данные выходят за рамки этого ответа, но этот процесс обеспечивает согласие с данными.
Эти две структуры представляют собой распределенную структуру данных, но служат различным целям. DHT стремится обеспечить эффективную структуру (по времени поиска и хранения данных) для разделения данных в сети и цепочки блоков, чтобы обеспечить защищенную от несанкционированного доступа структуру данных.