我该在哪里找到比特流DHT引导节点列表?

15

通过我的谷歌技巧,我只找到了几个节点:
router.bitcomet.com, router.utorrent.com, router.bittorrent.com

是否有所有引导节点的列表,我不知道吗? Torrent客户端开发人员从哪里获取引导节点的地址?(我查看了Deluge源代码并看到上面的节点是硬编码的。)


2
这有点离题,但既然我是从DDG进来的...... 我在qBittorrent源代码中找到了另外两个路由器:dht.transmissionbt.comdht.aelitis.com(标记为Vuze的DHT路由器)。 - Szymon Szydełko
好尝试,RIAA... - Capi Etheriel
3个回答

13

到目前为止,我已经得到了这些。

session = lt.session()
session.listen_on(6881, 6891)

session.add_dht_router("router.utorrent.com", 6881)
session.add_dht_router("router.bittorrent.com", 6881)
session.add_dht_router("dht.transmissionbt.com", 6881)
session.add_dht_router("router.bitcomet.com", 6881)
session.add_dht_router("dht.aelitis.com", 6881)
session.start_dht()

如果它们同时全部崩溃会发生什么? - paulkon
2
@paulkon:那么您的客户端仍然有其他方法来查找DHT节点:从以前的会话中缓存的节点列表,来自其他正在进行的种子的对等方,来自跟踪器的对等方,甚至是嵌入在“.torrent”文件中的节点。 - MestreLion

7

这些是我所知道的唯一的引导服务器。请注意,router.bittorrent.com只是router.utorrent.com的别名。

uTorrent只使用router.utorrent.com作为其引导服务器,我想大多数其他客户端也是如此。

如果您对特定的客户端感兴趣,并想知道它从哪里引导,您可以始终使用wireshark捕获它的DHT流量(从新安装开始),并查看它的第一个DHT数据包发送到哪里。

如果您有任何种子文件,则路由器并不是非常重要,因为您还可以从普通的bittorrent节点引导。


1
我正在编写一款类似于Torrent客户端的应用程序(使用rasterbar libtorrent),希望它能够: 1)更快地启动 2)在DHT表中引导更多的节点,以便DHT搜索可以更快地运行。 我认为添加更多的DHT引导节点会有所帮助。是否有办法自己创建一个?我已经尝试通过谷歌搜索,但没有成功。 - Moonwalker
2
你可能想要分析时间花在哪里,并稍微调整一下设置。更快的引导不一定会使搜索变得更快。路由表的大小可能不会有显著的差异,而且在协议中它被定义为每个桶8 + 8个节点。你可以启用DHT日志记录,并在运行时检查DHT状态,参见session_status的最后字段http://www.rasterbar.com/products/libtorrent/manual.html#status - Arvid
一般来说,没有办法加速DHT搜索吗? - Moonwalker
1
没有办法缩短 RTT 到 DHT 节点的时间。这并不意味着你不能进行优化。增加并行请求可能会使它更快。确保你已经正确引导是很重要的。查看日志以及它的行为,确保没有错误导致引入不必要的延迟。我的观点是,在进行“优化”之前,你应该先进行分析。 - Arvid

4
您可以从上述提到的知名节点,例如“router.bittorrent.com:6881”进行初始化。
然后,DHT客户端会跟踪这些节点。您可以在会话之间保存路由表,但是许多节点可能在第二天已经停止运行。
由于您需要维护路由表,因此建议您关注具有最长运行时间的节点,并在会话之间保留这些节点。
通过我的测试,DHT启动(直到回复find_node并返回您的节点)非常快速。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接