使用BitTorrent和SQLite的分布式搜索引擎

2021-01-21 03:04:35

最近,ZeroNet和IPFS等系统在分布式站点上引起了很多关注,这些系统似乎在Freenet等旧系统上有所改善。

在这些分布式系统之上构建搜索引擎还不太可行,因为用户需要在对数据库进行查询之前下载整个站点数据库(通常为数百GB)。

TorrentNet允许您利用BitTorrent网络和SQLite数据库来构建分布式搜索引擎。用户不必等待网站完全下载即可查询。

网站所有者创建一个SQLite数据库(.db文件),并从该文件创建一个种子文件。然后,他们继续播种该种子文件-就像他们将播种其他任何文件一样。

然后,网站用户开始下载该网站的洪流,而不是先在“稀有资源”中下载洪流片段。订单,他们根据他们执行的搜索查询下载作品。

换句话说,给定诸如" indiana jones"之类的搜索查询,TorrentNet知道要下载torrent文件中的" indiana jones"数据。可能存储在。

因此,结果可以及时地提供给用户,而不必等到整个数据库被下载。

而且,由于搜索查询只是常规的洪流下载,搜索查询可以被众多不同的对等点满足,从而有效地实现了分布式搜索引擎。

创建可通过公共密钥(例如33cwte8iwWn7uhtj9MKCs4q5Ax7B)访问的分布式洪流站点,这些站点通过BitTorrent网络共享并保持活动状态。

使用可变洪流扩展(BEP46)更新您的站点,并通过DHT网络让您的用户了解站点更新。

使用sqltorrent技术构建可按需查询的交互式站点。诸如搜索引擎之类的东西或复杂的可浏览体验都是可能的。

优点托管您的网站就像种子一样简单。无需购买域名或托管服务器。您可以在家庭网络上轻松托管您的Torrent网站,并让访问您网站的用户帮助您进行托管。

由于您控制通过DHT广播的地址(公共密钥),因此政府和机构很难阻止您共享的内容。

通过sqltorrent,您可以让用户仅下载与用户相关的torrent文件,从而提高用户体验。相互作用。本质上,您可以创建一个搜索引擎,并进行交互编程,以便提交搜索表单会导致对基础SQLite数据库的查询-该数据库根据查询对片段进行优先级排序。

缺点现在仅读取站点。 ZeroNet似乎可以解决此问题,但我尚未确信。 您的网站名称不好。 共享公共密钥比共享DNS站点的名称困难得多。 没有做分布式站点的标准。 许多不同的解决方案(IPFS,ZeroNet,Freenet等)。 TorrentPeek至少遵循大多数BitTorrent规范(使用强大的libtorrent库),并提供独特的SQL查询功能。 通过将一个SQLite数据库文件(.db)放在torrent中,我们可以查询其内容-通过基于SQL查询确定片段的优先级-并快速浏览数据库的内容而无需完全下载它。 只需npm安装,然后运行节点index.js file.torrent〜/ save_folder / 8080,其中最后一个是将午餐应用程序的UI端口。请确保file.torrent包含SQLite数据库,否则将不会 工作。