使用torrent协议进行分散备份

Mat*_* B. 9 backup open-source bittorrent project

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

客户端软件:

  1. 选择要备份的文件
  2. 为每个文件创建类似描述符文件的torrent
  3. 根据关键短语提供文件的可选加密
  4. 让您选择想要与其他客户交易的冗余(冗余将基于让步原则.如果您要备份100MB五次,则必须在系统中提供额外500MB的自有存储空间.文件备份不会仅在5个客户端之间分发,但它会利用尽可能多的客户端,根据设置中指定的物理距离提供存储交换

可选:

  1. 我想包括边缘文件共享.如果您在备份存储中共享非加密文件,并且更喜欢将其端口80打开以进行公共HTTP共享的客户端.但这很有诱惑力,因为我很难想出一个简单的方案,访问者会选择最近的备份客户端.

  2. 包含允许使用torrent协议在两个系统之间进行文件传输(类似于FTP和GUI)样式的文件管理器.

我正在考虑将其创建为服务API项目(有点像http://www.elasticsearch.org),它可以与任何容器集成,例如tomcat和spring,或者只是简单的Swing.

这将是P2P开源项目.由于我对我对torrent协议的理解不完全有信心,因此问题是:

以上是否可以使用torrent技术的当前状态(我应该在哪里java为这个项目招募开发人员)

如果这是发布此错误的位置,请将其移至更合适的网站.

Dav*_*rtz 7

你正在考虑错误的技术.你想要的是使用Vandermonde矩阵的擦除代码.这允许您做的是获得相同级别的保护以防丢失数据,而无需存储几乎相同数量的副本.Luigi Rizzo的开源实现完美无缺.

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

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

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