-
Notifications
You must be signed in to change notification settings - Fork 0
Description
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.
- 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...
A User want to prevent its data from being lost forever in case of
- device lost
- disk failure
- theft, burglary
- fire
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.
- 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.
- 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).