Open source 使用torrent协议的分散备份

Open source 使用torrent协议的分散备份,open-source,backup,project,bittorrent,Open Source,Backup,Project,Bittorrent,我想创建一个客户端,该客户端将使用torrent下载客户端(如UtorRent或Vuze)中使用的torrent协议来创建: 客户端软件将: 选择要备份的文件 为每个文件创建类似torrent的描述符文件 提供基于密钥短语的可选文件加密 允许您选择要与其他客户进行交易的冗余 (冗余将基于互谅互让原则。如果您想备份100MB五次,您必须在系统中提供额外的500MB存储空间。文件备份不会仅分布在5个客户端之间,而是将尽可能多地利用客户端,根据物理距离指定在exchange中提供存储(在设置中编辑)

我想创建一个客户端,该客户端将使用torrent下载客户端(如UtorRent或Vuze)中使用的torrent协议来创建:

客户端软件将:

  • 选择要备份的文件
  • 为每个文件创建类似torrent的描述符文件
  • 提供基于密钥短语的可选文件加密
  • 允许您选择要与其他客户进行交易的冗余 (冗余将基于互谅互让原则。如果您想备份100MB五次,您必须在系统中提供额外的500MB存储空间。文件备份不会仅分布在5个客户端之间,而是将尽可能多地利用客户端,根据物理距离指定在exchange中提供存储(在设置中编辑)
  • 可选:

  • 我想包括边缘文件共享。如果您希望在备份存储中共享未加密的文件,并且更希望将端口80打开的客户端用于公共HTTP共享。但这很棘手,因为我很难想出一个简单的方案,让访问者选择最近的备份客户机

  • 包括允许使用torrent协议在两个系统之间进行文件传输(类似于带有GUI的FTP)方式的文件管理器

  • 我正在考虑创建一个服务API项目(有点类似),它可以与任何容器(如tomcat和spring)集成,也可以只与普通Swing集成

    这将是一个P2P开源项目。由于我对自己对torrent协议的理解不完全自信,所以问题是:

    在torrent技术的当前状态下,上述方法是否可行(我应该在哪里为该项目招募
    java
    开发人员)
    如果这是发布此信息的错误地点,请将其移动到更合适的网站。

    您正在考虑使用错误的技术进行此项工作。您需要的是一个使用Vandermonde矩阵的函数。这使您能够获得相同级别的保护,以防数据丢失,而无需存储几乎相同数量的副本。有一个开源的实现,可以完美地工作

    这段代码允许您做的是获取8MB的数据块,并将其切割成任意数量的1MB数据块,这样任意八个数据块都可以重建原始数据。这允许您获得与将存储的数据大小增加三倍相同的保护级别,而无需将存储的数据大小增加一倍

    可以按任何方式调整参数。在Luigi Rizzo的实现中,有256个块的限制。但您可以控制数据块大小和重建数据所需的数据块数量


    您不需要生成或存储所有可能的块。如果将80MB的数据块切割成8MB的数据块,这样任何10个数据块都可以恢复原始数据,那么最多可以构造256个这样的数据块。您可能只需要20个左右。

    您可能很难实施交互存储功能,我认为这对大规模采用非常关键(最后,您可以很好地使用麦片盒中的3 TB驱动器!)您可能希望研究的机制,看看是否有任何工具可以为您自己的分布式不可抵赖存储证明需求而窃取或采用。

    可能客户机被黑客攻击,说它正在为其他用户存储数TB的数据,但当恢复数据时,客户机报告“哦,我丢失了这些字节”。这会产生什么影响?也许强制执行就像客户端定期随机请求块一样简单。那很容易。:)@sarnold您使用的方法要求客户机证明其拥有数据,理想的方式是与实际的数据请求无法区分。(有一些方法不需要大的查询。)正如Mat Banik所说,在实现之前需要由专家设计。这可能会实现你想要的。