kademlia相关内容

在 torrent kademlia 路由表上实现查找节点

我已经查看了许多关于此主题的文件,但有一些不太清楚.例如比特流文件 (http://www.bittorrent.org/beps/bep_0005.html) 状态 路由表被细分为“桶",每个桶覆盖一个空间的一部分.一个空表有一个带 ID 空间的桶最小值=0,最大值=2^160 的范围.当一个 ID 为“N"的节点插入到表,它被放置在具有 min 一切都已经在桶里了.即使我们使用 bit ..
发布时间:2022-01-02 11:34:47 其他开发

在 Kademlia 中,为什么建议使用 160 位节点 ID 和密钥而不是 128 位?

Kademlia 论文指出,节点被分配了随机的 160 位 ID 和密钥.这是严格的限制吗?如果我觉得足够好,我还能继续使用 128 位密钥空间吗? 解决方案 选择长度是因为 SHA1,用作哈希表键的哈希函数,输出 160 位,这是当时使用最广泛的哈希函数. 路由算法本身不需要特定的长度才能工作,它只需要足够大的密钥空间以避免随机选择的 ID 中的冲突.128 位 ID 将提供 64 ..
发布时间:2021-06-13 19:44:53 其他开发

Java的Kademlia实现

我想建立一个Kademlia网络来连接对等点并建立一个p2p网络.我将分配网络内节点的处理能力.对于网络,我发现此Kademlia Java从git实现了安装程序. https://github.com/JoshuaKissoon/Kademlia 我想知道如何设置它并用于实现网络. 我发现了 JKademliaNode kad1 = new JKademliaNode("Node1", ..
发布时间:2020-06-11 19:24:05 Java开发

Bittorrent KRPC-为什么节点ID的大小是info_hash的一半,并使用每个字符a-z?

这严重困扰了我. 原始的Kademlia提议出于明显的原因,应使用类似于sha1的160位十六进制: 在搜索与信息哈希相关的对等节点时,您可以简单地搜索nodeID,因为它们应该与sha1信息哈希相同的系统. 但请阅读以下内容: http://www.bittorrent.org/beps/bep_0005.html id为abcdefghi0123456789,即: 1)一半大 ..
发布时间:2020-06-11 19:24:01 其他开发

有人可以了解一下这种奇怪的DHT响应的含义吗?

有时我会收到其他节点的奇怪回应.交易ID与我的请求交易ID以及远程IP都匹配,因此我倾向于认为节点对此进行了响应,但它看起来像是响应和请求的组合 d1:q9:find_node1:rd2:id20:.éV0özý.?tj­N.?.!2:ip4:DÄ.^7:nodes.v26:.ï?M.:iSµLW.Ðä¸úzDÄ.^æCe1:t2:..1:y1:re 最糟糕的是它格式不正确.看7:no ..
发布时间:2020-06-11 19:23:53 其他开发

bittorrent DHT详细规格

在我的新周末项目中,我决定从头开始编写一个bittorrent客户端,根本不准备使用库.在寻找文档两天后,我已经准备放弃:smile:.我知道有 BEP ,但它们远远不足以理解所有规范.阅读更多内容后,我认为跟踪器和对等协议似乎已经过时并且易于理解/实现(是的,我知道,要编写一个具有平衡,对等选择,优化的良好代码,这并不像我刚才所说的那样容易,但是我要做的只是做基础学习,而不是与数十个好的客户竞争 ..
发布时间:2020-06-11 19:23:45 其他开发

为什么Kademlia使用UDP?

为什么 Kademlia分布式哈希表使用UDP作为其网络传输协议,即使它是不可靠? 解决方案 主要原因是您快速查询了许多以前从未建立过联系的节点,并且在查找过程中可能再也看不到. Kademlia查找是迭代的,即不会转发请求.转发DHT更适合于长期的TCP连接. 即很大一部分流量由网络节点之间的短暂请求和响应交换组成,可能在数以百万计的范围内.快速建立数千个TCP连接的开销将令 ..
发布时间:2020-06-11 19:23:37 其他开发

最新的bittorrent DHT实施建议是什么?

我正在努力实现另一个bittorrent客户端,目前正与DHT进行斗争.它是根据此规范 http://www.bittorrent.org/beps/bep_0005.html ,但开始调试它时,我注意到网络上其他节点的响应有所不同. 例如,应该使用find_node返回目标节点信息或8个最近的节点.大多数节点会回复最近的34个节点,通常只有34个节点中的1-3个能够成功回复随后的ping请 ..
发布时间:2020-06-11 19:23:24 其他开发

如何将Kademlia路由表表示为数据结构

kademlia纸讨论了水桶的组织, 简洁和条款. §2.2讨论了一组固定的160个存储桶,每个存储桶覆盖了键空间的固定子集.但是后面的章节将涉及覆盖键空间不同部分的其他拆分和存储桶.不太适合固定列表 组织存储桶的正确方法是什么? 元:由于困惑反映在许多问题中,部分信息分散在许多答案中,因此本问答集旨在提供易于链接的说明 解决方案 混淆源于纸张的不同版本 平面布局 ..
发布时间:2020-06-11 19:23:19 其他开发

节点的Kademlia树如何与种子文件的信息哈希相关?

我试图了解Kademlia在寻找资源方面的工作方式.现在有很好的描述来构建最接近自身节点的节点树,如何查找节点之间的距离,如何启动过程等.我不了解的是文件infohash如何适合此图片.所有描述都告诉我们如何发挥作用,并构建自己的分布式哈希表部分,但事实并非如此.我们这样做是为了实际找到资源,即具有特定信息哈希值的文件.它是如何存储在此节点树中的?或者有单独的树?查找具有此信息哈希并因此具有文件的 ..
发布时间:2020-06-11 19:23:16 其他开发

DHT路由表-为什么要使用存储桶而不是映射?

我认为最接近的问题。 构造路由表的一种显而易见的方法是简单地维护 a文字表。 Map(XOR,Node) Kademlia讨论了“ Bucket”的用法,这些桶由XOR的最高有效位组织。 “存储桶”的实际用途是什么? 当我们只需将“实际” XOR用作地图中的键时,为什么会搞混“最长前缀”? 显然,地图可能会大2 ^ 160,但是我们可以使用一些试探法来限制地图的大小,而不是实 ..
发布时间:2020-06-11 01:34:03 其他开发

在Torrent Kademlia路由表上实现查找节点

我已经审查了有关此主题的许多文档,但是有些内容并不清楚。例如,比特种子文件( http://www.bittorrent.org/beps/bep_0005.html) 路由表被细分为“存储桶”,每个存储桶覆盖空间的 部分。一个空表有一个存储桶,其ID空间 的范围为min = 0,max = 2 ^ 160。当将ID为“ N”的节点插入到 表中时,该节点将放置在min ..
发布时间:2020-06-11 01:01:20 其他开发

如何将Kademlia距离度量表示为整数

我是P2P网络的新手,目前我试图了解Kademlia论文中指定的一些基本知识.我无法理解的主要是Kademlia距离度量.所有论文都将距离定义为两个ID的XOR. ID大小为160位,因此结果也为160位. 问题:将距离表示为整数的便捷方法是什么? 我检查过的某些实现使用以下方法: distance = 160-前缀长度(其中前缀长度是前导零的数量). 这是正确的方法吗? 解决方案 我 ..
发布时间:2020-05-23 19:14:06 其他开发

为什么Kademlia如何构造其路由表?

我知道Kademlia路由表由160个存储桶组成. 根据节点的前缀长度(即本地节点密钥和节点的XOR中前导未设置位的数量),将节点放入存储桶0-159中. 为什么会这样,是否有任何性能上的好处(除了无法遍历160 * 20个节点以找到最接近的节点这一事实之外)? 解决方案 Kademlia使用2个节点ID的XOR来衡量它们之间的距离.路由表存储桶的概念是,节点对与其“接近"的网 ..
发布时间:2020-05-23 19:13:12 其他开发

Kademlia路由表和距离度量

这是我今天第一次阅读有关Kademlia的信息,有些观点我认为我做对了. 节点和键之间的距离是其值的异或. 因此,如果我有键x和节点y,则它们之间的距离是x x或y. 但是为什么要存储我知道的节点并按前缀长度对其排序呢?似乎并没有直接与节点ID的xor关联来找到离我最近的节点? 当我请求一个值时,我在离我最近的存储桶中的节点中进行搜索,即与我共享前缀最大的节点,即160个存 ..
发布时间:2020-05-23 19:13:07 其他开发

向Kademlia添加新节点,构建Kademlia路由表

我不太了解Kademlia DHT的加入过程.我在线上看过一些教程和演示文稿,但是它们似乎都以相同的方式说些事情,并且所有psedo代码等在大多数情况下都是相同的(实际复制/粘贴). 有人可以对此进行高层介绍吗? 解决方案 我假设您已阅读 Kademlia纸.以下摘录自我的文章《 Kademlia DHT简介》和《工作原理 一些背景信息: 当您运行一个Kademlia网络 ..
发布时间:2020-05-23 19:12:13 其他开发

高度不平衡的Kademlia路由表

在Kademlia论文中,第2.4节的最后一段指出,为了正确处理高度不平衡的树木... Kademlia节点将所有有效联系人保留在大小至少为k的子树中 节点,即使这需要拆分节点自己的存储桶 ID不存在. 但是,本文的前一部分似乎指出,如果一个k-bucket已经具有k个元素,则对该k-bucket的任何进一步添加都需要删除最旧的节点(首先对其进行ping操作以查看其是否还存在)或以其他 ..
发布时间:2020-05-23 19:11:17 其他开发

如何理解的Kademlia节点运算的时间复杂度

我现在学习的Kademlia网络通过读经典文章的 Kademlia的:基于XOR度量一个对等信息系统。我想了解其操作的复杂性,但仍无法找到答案。 在举证的 3素描的部分,本文给出了两个定义: 节点的深度(H):160 - i,其中i是最小的指数 非空桶 在节点节点Y的桶高x :桶的索引,其中x将插入Ÿ减去X的指数至少显著空桶 和三个结论: 以压倒性的概率任意给定节点的高度将是恒定的日志N ..
发布时间:2015-11-30 21:11:12 C/C++