Database 您将如何使用客户端构建分布式数据库?

Database 您将如何使用客户端构建分布式数据库?,database,distributed,bittorrent,libtorrent,Database,Distributed,Bittorrent,Libtorrent,如果我想为媒体文件(比如图像)创建一个分布式数据库,我会使用什么 其思想是DB不受任何特定实体的控制(尽管软件是可以控制的,尽管它是GPL/forkable) 相反,您会有一个客户端,它具有类似libtorrent的功能,可以用来浏览/缓存数据库。您可以使用“源”列表配置客户端 Cydia是这方面的好榜样 虽然我不想使用web主机,但我想使用作为超级节点的bit torrent种子机(可以对任意树高的子节点进行编目) libtorrent是最好的方式吗?或者会有更好的选择吗?仅仅因为给定torr

如果我想为媒体文件(比如图像)创建一个分布式数据库,我会使用什么

其思想是DB不受任何特定实体的控制(尽管软件是可以控制的,尽管它是GPL/forkable)

相反,您会有一个客户端,它具有类似libtorrent的功能,可以用来浏览/缓存数据库。您可以使用“源”列表配置客户端

Cydia是这方面的好榜样

虽然我不想使用web主机,但我想使用作为超级节点的bit torrent种子机(可以对任意树高的子节点进行编目)


libtorrent是最好的方式吗?或者会有更好的选择吗?

仅仅因为给定torrent存在播种器并不意味着您的客户知道他们在播种什么。你至少需要一个磁石链接,或者为每个单独的“东西”提供一个torrent文件

所以,用torrent“缓存”内容,好吧,但就“浏览”而言,你还需要其他东西(例如:一个索引,可以列出magnet/torrent文件——我怀疑你会用lib/bittorrent…)来构建它

其次,为了连接到您的swarm,您的“源”列表将由一个追踪器提供,或者如果使用DHT,至少是一个已知对等点(您称之为超级节点)的列表——同样由libtorrent提供的其他东西提供

此外,显然(?)你不能用torrent“更新”内容-如果有什么“变化”,那么它是另一个torrent-所以,短期来说,你会有一个包含无法修改的项目的数据库。。。通过bittorrent“复制”,但通过其他一些技术进行索引

我不太明白你为什么要看bittorrent来(重新)实现一个“分布式数据库”,但在我看来,这似乎是不正确的(如果仅仅因为索引,它就不会被分发,这在很大程度上违背了目的)

<> P>如果你的问题是可靠性/可扩展性,为什么不考虑任何(现有的)“DB”引擎来做这项工作?(mongo的副本集,或hadoop上的分布式文件系统,甚至是节点之间的老式手工数据复制,甚至sql主从,或一些云存储…)

如果您的问题是对数据库的“所有权”,那么这又不是关于内容,而是关于索引。 现在,我可以想象这样一种情况:对等方之间交换他们拥有的项目列表,允许给定的对等方从另一个给定的对等方获取数据,但这与我所说的“数据库”相去甚远


我认为如果不放弃“数据库”的概念,你就不能放弃“所有权”(至少在索引上)。。。(假设我很理解你所说的“数据库不会被任何特定实体控制”的意思。)

我正在查看refuge.io,当时refuge使用CouchDB作为其核心存储IIRC。现在,refuge不是一个数据库,更多的是一个共享平台,对吗?