Генерация идентификатора узла DHT? - PullRequest
1 голос
/ 24 марта 2011

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

Ответы [ 3 ]

2 голосов
/ 16 апреля 2011

Самогенерация идентификатора узла с использованием хорошей хеш-функции на большом пространстве значений является распространенным методом, используемым в системах DHT / P2P. Поскольку хеш гарантирует хорошее случайное распределение, вероятность столкновения очень мала. Статистически, идентификатор будет (почти всегда) уникальным.

Этот хэш не зависит от данных, хранящихся в узле.

0 голосов
/ 15 июля 2014

Как сказано в предыдущих ответах, идентификатор узла генерируется путем хеширования его IP-адреса (вообще говоря, так обстоит дело с DHT, например Chord ) или другой уникально идентифицируемой информацией.

И поскольку он использует Согласованное хеширование , когда узел присоединяется или покидает n-сеть, необходимо переназначить только ключи 1/n, таким образом, он поддается высокодинамичным топологиям сети, таким как одноранговая сеть. -в-сверстников.

Технически сгенерированный хеш не передает никакой информации о данных, хранящихся на этом узле. Скорее хеш для определенного ключа (или записи в хранилище данных, если используется для этой цели) происходит от хеширования ключевого слова (или имени файла или содержимого файла).

Как прямое следствие Последовательного хеширования, возникает абстрактное понятие расстояния между ключами. (Как указано здесь ) Узлу принадлежат все ключи, для которых его идентификационный ключ (ID) наиболее близок согласно метрике расстояния.

0 голосов
/ 20 ноября 2013
import random
import hashlib

def newID():
  s = ""
  for i in range(20):
    s += chr(random.randint(0, 255))
  m = hashlib.sha1()
  m.update(s)
  return m.digest()
...