“DHT搜索引擎”如何运作?

问题描述 投票:0回答:4

我对 Btdigg.org 感兴趣,它被称为

"DHT search engine"
。根据这篇文章,它不存储任何内容,甚至没有数据库。那么它是如何运作的呢?它不需要像其他普通搜索引擎一样收集元信息并将其存储在数据库中吗?用户提交查询后,它会扫描DHT网络并“实时”返回结果?这可能吗?

search-engine dht
4个回答
19
投票

我对 BTDigg 没有具体的了解,但我认为没有数据库(或类似数据库的东西)的说法是错误的。该文章的作者可能指的是您在传统 torrent 站点中可能遇到的更具体的内容,例如存储实际 .torrent 文件的地方。

这就是类似 BTDigg 的网站的工作原理:

  1. 您运行一堆 DHT 节点,特别是为了“偷听”DHT 流量,以了解人们谈论的信息哈希。
  2. 加入这些群并使用 ut_metadata 扩展下载元数据(.torrent 文件)
  3. 索引您在其中找到的信息,将其映射到信息哈希
  4. 为该索引提供前端

如果你想奢侈一点,你还可以定期抓取你所知道的信息哈希,以随着时间的推移收集统计数据,也许还可以找出群体何时消失并应从索引中删除。

因此,您不存储 .torrent 文件或任何内容的说法是正确的。

实时搜索 DHT 是不现实的,因为 DHT 不是围绕关键字搜索组织的,您需要“在后台”持续构建和维护索引。

编辑:

自从这个答案以来,一些 DHT 客户端已经实施了优化(BEP 51),让您可以查询它们托管的信息哈希,从而显着降低索引成本。


11
投票

要深入了解 DHT 及其应用,请参阅 Scott Wolchok 的论文和演示文稿“爬行 BitTorrent DHT 以获得乐趣和利润”。他提出了自主搜索引擎的想法,作为他对 DHT 安全性研究的旁注。

他的论文的PDF:

他在 DEFCON 18 上的演讲(第 1 部分和第 2 部分)


4
投票

https://www.usenix.org/legacy/event/woot10/tech/full_papers/Wolchok.pdf

第 3 节中使用的方法似乎表明需要一个数据库来存储所有 torrent 数据。虽然性能更好,但它可能不是真正的 DHT 搜索引擎。

第 8 节虽然效率较低,但只要关键字是存储值,似乎就是一个 DHT 搜索引擎。

来自第 3 节,引导 Bittorent 搜索:

“系统通过处理用户查询来处理 每个 torrent 的文件名和描述串联起来 典型信息检索模型中的文档并使用 倒排索引将关键字与种子相匹配。这有一个好处 受到流行的开源关系 DBMS 的良好支持。我们 根据 torrent 的受欢迎程度对搜索结果进行排名, 我们可以从 DHT 中列出的节点数量推断出这一点”

来自第 8 节,相关工作:

使用 DHT 分发搜索的常用方法是 使用倒排索引,通过存储每个(关键字,匹配列表 文档)对作为 DHT 中的键值对。琼等人。 [17] 描述这种方法并指出其性能问题: 文件中关键字的 Zipf 分布会导致负载非常不平衡 平衡,文档信息为每个关键字复制一次 文档,并且很难在分布式中对文档进行排序 环境


4
投票

分为两步。

  1. 要实现bep_0005协议获得infohash,您现在不需要实现所有协议要求

    find_node (request)
    get_peers (response)
    announce_peer (response)
    。这是我的开源项目之一 dhtspider

  2. 实现bep_0009协议得到metainfo索引吧,这里有我自己的一个bittorrent搜索引擎,每天可以得到unique infohash 300w+,有效metainfo 50w+。

© www.soinside.com 2019 - 2024. All rights reserved.