去中心化的对等网络没有索引来查找谁持有某个文件。泛洪网络成本太高;中央追踪器则违背了初衷。

2002年的Kademlia将距离定义为160位ID的按位异或。由于XOR是其自身的逆运算且对称,节点的路由表根据前导位差异的位数将其他ID分桶,每一桶保留约一个联系。

要找到一个对等节点,节点查询距离目标最近已知节点,每次回复都会带来一个更近的节点,因此搜索距离每轮减半——大约需log n跳。系统具有自愈性,因为节点在回答时学习和传播信息。

将XOR称为距离;每个节点都靠近某个人

XOR距离是对称的,节点在每个位级别上都靠近某个联系。

路由表保持很小,但可达性是全局的,因此没有节点认识所有人。

每一跳将距离减半,使得在无目录的情况下实现O(log n)搜索。

查找和插入使节点学习到其他节点,因此网络能自我修复。

在没有目录的网络中,选择一个度量标准,让每个节点在每个距离桶中保持一个联系。每个节点通过最接近的已知邻居到达任何其他节点,而不需要全局列表。

Kademlia成为BitTorrent DHT、以太坊以及许多文件共享网络的查找协议。它是大型对等系统中无协调器路由的标准答案。

从这里,追溯依据

参考来源

  1. Kademlia: A peer-to-peer information system based on the XOR metric IPTPS 2002, Springer · pdos.csail.mit.edu
  2. Kademlia Wikipedia · en.wikipedia.org