Decentralized File Storage System


Goal
The goal of this project is to create a secure, decentralized file storage and sharing system with a focus on user privacy and data integrity. This will enable users to upload, download, and share files with encrypted protection, utilizing a private network of Tahoe LAFS (Least-Authority File System) nodes. The system aims to provide a simple user interface for file management while ensuring that sensitive data is safely stored and only accessible to authorized users.
Impact
This project has the potential to:
Improve Data Security and Privacy: By using encryption and decentralized storage (via Tahoe LAFS), the system ensures that users’ files are stored safely and cannot be accessed without proper authorization. This is crucial in industries where data privacy is paramount.
Simplify User Experience: The project focuses on delivering a simple, intuitive user interface for both file uploads and downloads, making it easier for individuals and organizations to manage their files without compromising security.
Reduce Dependence on Centralized Services: By leveraging a decentralized network (Tahoe LAFS), users are less reliant on centralized cloud storage providers, thus reducing the risk of data breaches and offering a more resilient solution for file storage.
Encourage Secure File Sharing: The system includes functionality for securely sharing files via URIs, ensuring that users can share data without fear of unauthorized access.
Enable Private Networking: The integration with private networks (such as Headscale) enhances the privacy and control users have over their data by allowing them to manage their own network infrastructure.
Project Overview
This project consists of three main components:
User Interface: The front-end of the system where users can register, log in, upload files, and download or share files. It provides a simple, intuitive interface with clear pages such as the registration page, login page, dashboard, file upload, and download interface.
Backend: Handles core user interactions, including registration, login, and file handling. It also interfaces with the Tahoe LAFS network to store and retrieve files, manage file metadata, and update shared URIs. The backend ensures that the user’s data is securely handled and stored.
Tahoe LAFS Network: A decentralized storage network that includes nodes responsible for encrypting, splitting, storing, and retrieving files. This network ensures that files are distributed across multiple nodes for increased security and resilience. Tahoe LAFS also provides the encryption layer to protect the files during storage and transfer.
Additionally, the system includes a Database for storing user credentials, file metadata, and shared URIs, along with an Encryption Layer that adds an additional level of security for file uploads and downloads.
Solution:
The solution provides a decentralized file storage and sharing platform with the following features:
User Registration and Authentication: The registration and login system ensures only authorized users can access their files. User credentials are stored securely in the database.
File Upload and Download: The system allows users to upload files through an intuitive interface. These files are encrypted, split, and distributed across multiple Tahoe LAFS nodes for increased reliability and security. When users wish to retrieve or download a file, it is reassembled and decrypted for access.
File Sharing and URI Management: Once a file is uploaded, the system generates a unique URI that can be shared with other users. Shared URIs are stored and managed in the backend to allow easy access to files.
Encryption and Decryption: Files are encrypted before they are uploaded to the Tahoe LAFS network. This ensures that the data is protected both during transit and while stored on the network. An additional encryption layer protects files during download.
Private Network Integration: The system integrates with private networks (such as Headscale) to add an additional layer of security, allowing the nodes to be part of a trusted, private environment.
Scalability: The Tahoe LAFS network allows for scaling horizontally, with more nodes added to increase storage capacity and fault tolerance.
This solution provides a secure, user-friendly, and scalable platform for managing sensitive files while ensuring that privacy and data integrity are preserved at all stages of the file handling process.