种子中的 DHT

2024-03-28

我正在编写一个 P2P 实现,我希望将其去中心化。然而我在掌握如何做时遇到了一些困难DHT https://en.wikipedia.org/wiki/Distributed_hash_table在像 BitTorrent 这样的协议中是有效的。

如果没有跟踪器,客户端如何知道对等点在哪里?对等点是否存储在实际的 torrent 文件中?


对于无跟踪器/DHT 种子,对等 IP 地址使用 BitTorrent infohash 作为密钥存储在 DHT 中。由于跟踪器所做的基本上就是响应 put/get 请求,因此此功能与 DHT(分布式哈希表)提供的接口完全对应:它允许您通过 infohash 在 DHT 中查找和存储 IP 地址。

因此,“get”请求将查找 BT infohash 并返回一组 IP 地址。 “put”存储给定 infohash 的 IP 地址。这对应于您向跟踪器发出的“宣布”请求,以接收对等 IP 地址的字典。

在 DHT 中,对等点被随机分配来存储属于密钥空间一小部分的值;散列确保密钥在参与的对等点之间随机分布。 DHT 协议(Kademlia http://en.wikipedia.org/wiki/Kademlia对于 BitTorrent)确保 put/get 请求有效地路由到负责维护给定密钥的 IP 地址列表的对等点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

种子中的 DHT 的相关文章

随机推荐

  • Ubuntu 14.04 桌面上的 Jenkins.log 位置

    Setup 我目前正在 Ubuntu 14 04 桌面计算机上运行 Jenkins 实例 我已经通过 WAR 发行版安装了 Jenkins 并在主机上将 Jenkins 作为服务运行 Issue 我正在尝试访问描述的 jenkins log
  • 将匿名类型作为方法参数传递

    在我的插件架构中 我当前将插件名称 字符串 方法名称 字符串 和参数 对象数组 传递给我的插件服务 以执行指定的方法并返回结果 T 类型 插件服务的执行方法如下所示 public TResult Execute
  • Pandas 中最快的计算方法?

    给定这两个数据框 df1 Name Start End 0 A 10 20 1 B 20 30 2 C 30 40 df2 0 1 0 5 10 1 15 20 2 25 30 df2没有列名 但您可以假设列 0 的偏移量为df1 Star
  • XML 到 XML - 创建唯一 ID 并在同一文档中引用它们

    我有一个源 xml 其中包含现场地址 需要转换为一个 xml 将所有地址保存到单个元素中并引用每个地址 我正在使用 Saxon 9 1 处理器和样式表版本 1 0 感谢您的帮助 源代码
  • 在 IIS 上 Dockerize ASP Classic

    微软一直在投资在 Windows 上运行 docker适用于 Windows 的 Docker 桌面 是否可以通过 Docker 在 IIS 上运行旧版 ASP Classic 应用程序 如何 https hub docker com r
  • 等待主线程直到 ExecutorService 的所有线程池任务完成?

    我需要主线程等待所有线程池任务完成 怎么做 例如 我有程序 public static void main String args ExecutorService executor Executors newFixedThreadPool
  • Android JNI:调用 System.loadLibrary() 会导致 SEGV [重复]

    这个问题在这里已经有答案了 可能的重复 应用程序可以在 Eclipse 中调试 运行 但 APK 在解析包含自定义视图的 XML 布局时给出 classNotFoundException https stackoverflow com qu
  • 如何打包 Visual Studio aws 无服务器项目?

    我试图弄清楚是否有一种方法可以以自动化的方式打包 aws 无服务器项目 以便我们可以拆分构建和发布管道 使用dotnet lambda命令行工具 我可以看到有一个dotnet lambda package命令将 lambda 打包为 zip
  • 在 php 中集成 payfort api 时遇到问题

    我正在关注 https docs start payfort com references api https docs start payfort com references api 实施 Payfort 付款 Api 的文档 但我遇到
  • Kendo 自动完成显示两个建议列表

    我的 Kendo 自动完成控件成功检索 Json 列表 不幸的是 它调用了 MVC 控制器方法两次并创建了两个建议列表 重复列表直接显示在第一个列表后面 当从第一个建议列表中选择一个值时 该列表会消失 但重复列表仍然可见 我正在使用自动完成
  • Angular“=”范围不适用于驼峰命名法

    我是指令的范围属性 我使用时效果很好show作为属性名称 span span
  • 如何在 pip 安装期间编译 C++ 依赖项?

    我想让我的 python 代码可以使用 pip 但是 我的代码依赖于另一个不可 pip 的库 所以 当用户调用时我需要以某种方式编译源代码pip install 我怎样才能做到这一点 我无法通过简单的谷歌搜索找到好的参考资料 我建议看看 l
  • 使用请求对象 Flask 获取 json 响应

    网络服务 app route get details def getDetails cur execute select from employee rows cur fetchall columns desc 0 for desc in
  • CSS / HTML 导航和徽标位于同一行

    我不知道如何将它们放在同一条线上 http codepen io anon pen dovZdQ http codepen io anon pen dovZdQ div class navigation bar div img src lo
  • 如何修复/调整 ggplot geom_tile 中每个带的宽度

    这是我的问题的示例数据 sampledata lt matrix c 1 60 1 60 rep 0 1 each 60 sample 1 3 120 replace T ncol 3 colnames sampledata lt c Ti
  • 如何进行递归子文件夹搜索并返回列表中的文件?

    我正在编写一个脚本 以递归方式遍历主文件夹中的子文件夹并构建特定文件类型的列表 我的脚本有问题 目前设置如下 for root subFolder files in os walk PATH for item in files if ite
  • Jquery AJAX:服务器端验证失败时如何显示Flash错误消息?

    我正在使用 Jquery 表单插件通过 ajax 提交表单 我已经在我的模型中的服务器端设置了验证 现在 当验证失败时 我想使用 ajax 向用户显示相同的 flash error 消息 如果验证成功 我可以显示 flash notice
  • Xcode 卡在索引上

    我已经工作了两个月的项目无缘无故停止工作 因为 Xcode 卡在 索引 上 我无法再构建该项目了 如果我尝试构建 Xcode 就会冻结 我必须强制退出 这种情况仅发生在该项目中 我尝试清理所有派生数据 但没有帮助 我正在使用 Xcode 4
  • jqgrid 更改单元格值并保持编辑模式

    我在网格中使用内联编辑 在某些情况下我想更改列内单元格的值 我用 setCell 更改它 效果很好 我的问题是 更改后 单元格失去了编辑模式 而该行的所有其他单元格都处于编辑模式 我想在更改单元格后将其保持在编辑模式 现在我所做的是保存该行
  • 种子中的 DHT

    我正在编写一个 P2P 实现 我希望将其去中心化 然而我在掌握如何做时遇到了一些困难DHT https en wikipedia org wiki Distributed hash table在像 BitTorrent 这样的协议中是有效的