#概述
Kademlia(简称Kad)是一种分布式哈希表技术,用于建立p2p网络拓扑结构。
基本原理就是以两个节点ID的异或值作为两节点间的距离d,每个节点都将其他节点的信息存储到称之为K桶的表结构中,该表结构按照d的为1的最高bit位分层(可理解为桶索引),每层中存储最多K个节点信息。如下:
| I | 距离范围 | 邻居 |
|:---:|:---------:|:-----------:|
| 0 |[2^0, 2^1 ) | (IP,UDP,NodeID)
<
br
>...|
| i |[2^i, 2^i+1 ) | (IP,UDP,NodeID)
<
br
>...|
节点查找时,通过询问距离自己最近的a个节点,让对方返回距离目标最近的a个节点,重复这个过程直到找到目标节点或者能问的都问了一遍。
参考资料:
[
references/Kademlia协议原理简介.pdf]( references/Kademlia协议原理简介.pdf)
[
https://www.jianshu.com/p/f2c31e632f1d]( https://www.jianshu.com/p/f2c31e632f1d)
#以太坊中的实现概述
##几个概念