我正在使用bencod.NET尝试发送 find_node 查询并使用引导节点接收答案。 看起来请求运行良好,我确实在 wireshark 和 c# 上得到了响应。问题是在解码时(使用 bencoding ofc)我得到了不可读和不可用的字典代码: id 是一个随机的 20 字节数组,如果您想知道 ...
我正在使用bencod.NET尝试发送 find_node 查询并使用引导节点接收答案。 看起来请求运行良好,我确实在 wireshark 和 c# 上得到了响应。问题是在解码时(使用 bencoding ofc)我得到了不可读和不可用的字典代码: id 是一个随机的 20 字节数组,如果您想知道 ...
是否有任何工具可以检测 local.network 上的 DHT? 也许 Kademlia、Hyperswarm 或其他图书馆? 目标不是阻止 DHT(几乎不可能),而是编写一个脚本或服务来通知是否在 local.network 上检测到 DHT 客户端。 也可以确定DHT客户端的本地ip。 UP ...
storj kademlia 节点中的 NodeId 生成是如何发生的? 为什么生成 nodeid 需要很长时间,这对节点的安全性有何贡献? ...
在原论文的“Routing”一节中,正常分桶规则的问题描述如下: 每个前缀为 001 的节点都有一个空的 k-bucket,你应该插入其中,但是你的 bucket 刷新只会通知节点的 [$k]。 我不明白为什么这是个问题。 为什么前缀为 001 的每个节点都需要接收你的桶刷新? 我已经阅读了原始论文 ...
Kademlia 有 4 条 RPC 消息: ping store find_node find_value Kademlia 节点如何找到给定键的值? 给定一个 id,很明显,对于大小$n$的网络中的节点,只需$log(n)$步即可找到具有该 id 的节点。 但是一个节点 ...
我是以太坊的新手,通常是区块链。 我了解到以太坊区块链适用于Kademlia 。 Eleuth P2P很好地解释了分布式哈希表及其工作原理。 现在我使用geth连接到以太坊主网,它在 5 到 6 分钟内发现了 2 到 3 个最大对等点。 现在我知道算法了,但我关心的是如何发现第一个对等点? 因 ...
查找协议背后的想法是找到与该键最近的 k 个邻居,并检查其中是否有任何一个具有与查询的键对应的值。 论文: http://css.csail.mit.edu/6.824/2014/papers/kademlia.pdf 我的问题是,在这种情况下会出现价值观冲突吗? 例如,一个邻居说值是x而另一个邻 ...
查找节点操作的第一步如下(如论文所述): 查找发起者首先从其最近的非空 k-bucket 中挑选 α 个节点(或者,如果该存储桶的条目少于 α 个,它只获取它所知道的 α 个最近的节点)。 为什么它直接从桶中挑选元素,而不是在所有桶中的所有元素中寻找k最接近的元素? 我相信后者是算法第 2 步中发 ...
假设您有节点u ,它在其路由表中包含节点w 。 节点u是否必须出现在节点 w 的路由表中? ...
我在看 Kademlia 的论文,我遇到了一个我无法理解的问题。 In a fully-populated binary tree of 160-bit IDs, the magnitude of the distance between two IDs is the height of the s ...
我正在尝试使用 Kademlia 论文来实现 DHT,以更好地理解这些系统是如何工作的。 我已经阅读了一些其他文章,这些文章提到了这种实现分布式 hash 表的方式,但是有些东西我无法理解。 在 p2p 交换文件网络中,密钥 ID 可以实现为文件名摘要,以通过搜索机制保持一致性。 但是节点 ID 本 ...
我正在使用 Mainline DHT 实现。 我看到了奇怪的行为。 假设我知道节点 IP 和端口:1.1.1.1:7777。 我以我自己的节点哈希作为目标向他发送“find_node”请求。 我从他那里得到 8 个节点,假设第一个哈希是:abcdeabcdeabcdeabcde 和 IP:2.2. ...
好的,我最近一直在阅读有关 Kademlia 的文章和论文,以实现一个使用 kademlia dht 算法的简单 p2p 程序。 那些论文说,Kademlia 节点中的那些 160 位密钥用于识别节点(节点 ID)和数据(以元组的形式存储)。 我对“两者”部分感到很困惑。 就我的理解而言,Kad ...
我正在对基于 Kademlia 的去中心化网络进行一些研究。 在引导新节点后,不是向最近的节点广播消息,而是将消息发送到由其 ID 标识的特定节点吗? (即使这意味着在到达目的地之前将消息中继到多个对等点)。 ...
我重新设计了使用k型桶的“平面模型”构建的系统(P2P应用程序)-每个距离都有自己的k型backet。 距离是标识符长度减去共享前缀长度(XOR)。 这里一切都清楚了。 现在,我们要使用二叉树来保存存储桶(如上一期Kadelmia文档中所述)。 当我们“寻找存储桶”以放置新的联系人时 ...
在Kademlia中,节点存储的所有(密钥,值)对除了最初由当前节点本身发布的对之外,还具有基于当前节点相对于密钥所在位置的到期时间。 如果当前节点是与密钥最近的k个节点,则(密钥,值)对在其最初发布时的24h之后就会过期。 如果它不是k最近的节点,则到期时间为 与当前节点和ID最 ...
Kademlia论文指出,节点被分配了随机的160位ID以及密钥。 这是严格的限制吗? 如果我觉得足够好,我是否仍可以继续使用128位密钥空间? ...
它说: 我们从一些定义开始。 对于覆盖距离范围2i,2i + 1的k个桶,将桶的索引定义为i。 将节点的深度h定义为160 − i,其中i是非空存储桶的最小索引。 将节点x中节点y的存储桶高度定义为x将插入y的存储桶的索引减去x的最低有效空存储桶的索引。 由于节点ID是随机选择 ...
我想确认我对 Kademlia DHT 中的桶的理解。 Kademlia 有m 个 k-bucket ,其中m是以比特为单位的网络大小, k是每个存储桶存储的键值对的数量。 例如,假设m=4那么我们可以有2^4节点,即从 0 到 15。 每个节点都有0位匹配、1位匹配、2位匹配等的路由表,这是 ...
我的理解是IPFS和Bittorrent Mainline DHT构建在分布式哈希表(Kademlia)之上。 他们使用文件哈希作为Kademlia密钥来查找可能具有此文件的对等项列表。 1-我不明白的是,如果从DHT对等体中删除不再托管文件内容的所有分散的话? 2-什么阻止某人在 ...