Skip to content
duhlin edited this page Feb 16, 2013 · 1 revision

Table of Contents

Principle

This project aims at providing a free solution for data backup. Local storage is valuated with a few criteria such as bandwith or availability and can be trade for a decentralized storage.

Objectives

secure
Only the owner of the data should be able to read them. Data get encrypted before they are send on the network.
as reliable as possible
Since this solution relies on 'user' sharing, it is not possible to provide a 100% reliable backup. But still, it's possible to get very close to these 100%.
low resources
Since the program runs as a service, it should not have any impact on the overall performance of the host system. This means:
  • low CPU consumption:
  • low network consumption
cross-platform
Should be available first on computers: linux, windows, mac. But on mobile devices too: android, iOS, windows phone, etc...

Use cases

A User want to prevent its data from being lost forever in case of

  • device lost
  • disk failure
  • theft, burglary
  • fire

Tom

Let's consider a user named Tom. Tom keeps all its data on his NAS system. He's quite confident on the reliability of his NAS in case of disk failure but Tom has to consider other risks. How would Tom recover it's data if his NAS system is stolen ?

Tom has some friends who face the same problem. Tom can convince his friends to trade storage. If Tom shares 100 Go from his NAS to his friends, he'll then be granted 100 Go on their NAS. As a result, if Tom's NAS is stolen, Tom could then retrieve his data from his friends.

Features

transparency
one can get a report to know where its data are being stored and get an evaluation of the time required to retrieve all of his data if needed.
security
one can not read data from other users.
storage quality evaluation
100 Go available time to time on a low bandwidth connection does not have the same value as 100 Go on a highly available server.
storage redundancy:
The best combination of network storage is computed to guaranty the most reliable backup without too many data redundancy.
others
One might be interested in advanced features such as snapshot, multiple revision control, etc... These features are not a primary objective and should be addressed in a second step.

Technical thoughts

  • security with an ssh based communication
  • statistical analysis to find the best algorithm for storage valuation
  • use openssl or a third part library for data encryption
  • low network consumption using an 'rsync' like algorithm to detect what should be sent.
  • possibility to get a user report (might be an html report).
Clone this wiki locally