我正在编写一个P2P实现,希望使其去中心化。但是,我在理解像BitTorrent这样的协议中DHT如何工作方面遇到了一些困难。 如果没有tracker,客户端如何知道对等方在哪里? 对等方是否存储在实际的种子文件中?
我了解NAT穿透以及STUN、TURN和ICE的使用。我想知道这些是否在像BitTorrent这样的点对点文件共享应用程序中实现。无论是通过STUN创建直接连接还是通过TURN中继,跟踪器是否有助于在NAT后面通信的同行之间进行通信。在分布式哈希表(DHT)的情况下,一个同行如何与其他NAT后...
最近,我阅读了一份Kademlia协议的文档,我试图理解这个协议,但仍有一些问题: 为什么一个节点必须在知道其ID但不知道IP或端口时找到另一个节点? 他如何拥有ID而不知道IP或端口,他从哪里获得ID? 我认为两个不同节点之间的“距离”不是路由距离或真实距离,它只是一种虚拟距离,可以用算法快...
在Kademlia论文的第2.4节的最后一段中,指出为了正确处理高度不平衡的树,Kademlia节点将所有有效联系人保留在至少包含k个节点的子树中,即使这需要分裂桶(bucket),其中节点自身ID不存在。 然而,论文的前一节似乎表明,如果k-bucket已经有k个元素,则对该k-bucke...
我正在尝试理解一致性哈希的工作原理。这是我想要跟进的文章,但我无法理解,首先我的问题是: 我理解,服务器被映射到哈希码的范围内,数据分配更加固定且查找变得容易。但是当一个新节点添加到集群中时,这如何处理? 示例Java代码不起作用,有没有简单的建议基于Java实现一致性哈希。 更新 ...
这个问题可能适合在比特币论坛中讨论,但我想从编程的角度理解。 有用于分布式存储的技术,例如分布式哈希表(比如kademlia或类似的)。比特币区块链与分布式哈希表有何不同?或者说,分布式哈希表技术是比特币区块链的基础吗?为什么比特币区块链相对于DHT被誉为突破性的技术?
我正在尝试理解磁性链接是如何工作的。我读到它们使用DHT和PEX来获取同行,但如果我是网络中的新节点,仅有文件哈希值如何找到同行呢?难道不总是需要链接到已知主机吗? 谢谢
我一直在尝试理解种子磁力链接技术,但似乎无法弄清楚在打开磁力链接时如何连接到第一个对等节点。 当您获得如下的磁力链接时,它不包含初始对等节点,只有BitTorrent信息哈希(btih)和文件名。 magnet:?xt=urn:btih:bbb6db69965af769f664b6636e...
如果我有一个没有任何跟踪器的torrent,并且我刚刚启动了bittorent客户端,所以我还没有任何peer,那么我如何知道在DHT中首先连接谁?看起来我至少需要知道DHT中的一个节点才能开始...