Peer-to-peer backup system based on BitTorrent
Peer-to-peer (P2P) data sharing systems are widely used now. However, I'm still
missing a multi-platform backup solution based on this technology. Imagine the following
scenario: Each user backups his/her data, encrypts it, perhaps signs it with a
digital signature, and publishes it into a P2P network. At the same time (s)he
offers some disk space to other participants to store their data. Then, the
users automatically exchange data so that their data are distributed in the network and can be
downloaded later by the respective owner in a case of a loss.
Most of the technology required for the project is already available. In particular:
[list]
[*] Cryptography libraries for encrypting user data.
[*] P2P library for distributing the data. The best choice for P2P communication seems to be
[w:BitTorrent protocol], as it is widely used, is proved to be robust and effective, and
there are several libraries to choose from.
[*] For better efficiency, the program could also include some compression
algorithm(s) with high compression ratio, for example [w:Lempel-Ziv-Markov chain algorithm].
[*] In some cases the user's software doesn't or can't support incremental
backup. [w:Clonezilla], a program for safing whole disks/partitions, is a good
example. In such a case the program could assist the user with its own
solution, which could be based on [w:rdiff].
[/list]
The aim of the project would be to create
[list]
[*] a full featured user friendly client, and
[*] a server on a top of a [w:BitTorrent tracker] that aids the clients in
distributing the data, determines the credit of the clients (i.e. the ratio
between space designated for others and the amount of own data to be
distributed), etc.
[/list]
