Decentralized Federated File Hosting Platform
0din is a decentralized, federated file hosting platform that aims to provide a scalable and user-friendly solution for sharing and accessing files across a distributed network. By combining the strengths of decentralization and federation, 0din creates a dynamic, resilient ecosystem for file-sharing.
-
Clone the repository:
git clone https://github.com/4rtemis-4rrow/0din.git cd 0din -
Create and activate a virtual environment:
Run the following command in your project directory to create a virtual environment:
python3 -m venv .venv
To activate the virtual environment, execute one of the following commands:
On macOS and Linux:
source .venv/bin/activateOn Windows:
.venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Run the application::
python srs/0din.py
Decentralized Hosting: Operates on a distributed network of nodes, each contributing to the overall system, ensuring robustness and redundancy.
Federated Architecture: Nodes communicate and interact seamlessly, enabling users to access files hosted on any participating node.
Admin-Only Uploads: File uploads are restricted to administrators. Uploads are done by manually placing files into designated directories rather than through a web interface.
Automatic Categorization: Files are automatically categorized based on their path and file extension, simplifying file organization and retrieval.
HTTP Access: Files can be accessed via standard HTTP, allowing users to browse and download files using any web browser without the need for specialized clients, unlike torrents.
Ease of Setup: Designed for simplicity, 0din is extremely easy to set up, requiring minimal configuration and maintenance.
Setup: Configure 0din by pointing it to a specific directory on your system. 0din will begin hosting files from this directory immediately.
File Access: Users can search and download files from any node in the network using a standard web browser. The federated design ensures that files are available across the network.
File Management: Administrators manage file uploads by manually placing files into the appropriate directories on their node.
Network Expansion: As more users establish 0din nodes, the network grows, increasing the availability and distribution of files across a broader range.
- Decentralized File Hosting with Federated Search
-
0din: Each node operates independently, hosting its own files and handling its own search queries. The federated search system aggregates results from multiple nodes, ensuring a comprehensive search experience without relying on a central tracker or indexer.
-
BitTorrent/IPFS: Typically rely on centralized or semi-centralized trackers (BitTorrent) or distributed hash tables (IPFS) for indexing and search.
- Simple Node Operation
- 0din: Nodes are lightweight and easy to set up, requiring only a simple configuration and basic file placement. No complex software or additional components are needed for hosting files or participating in the network.
- BitTorrent/IPFS: Can involve more complex setup processes and require additional software or configurations to function effectively.
- No Need for Specialized Clients
- 0din: Operates over standard HTTP, allowing users to access and download files using any modern web browser. This eliminates the need for specialized clients or software.
- BitTorrent: Requires specific torrent clients to download files. IPFS requires IPFS clients or gateways for accessing content.
- Rapidly Growing Network with Minimal Overhead
- 0din: Designed to scale effortlessly with the number of nodes, leveraging federated search to distribute query load and minimize individual node responsibilities.
- BitTorrent/IPFS: May experience performance issues with high numbers of peers or files, especially if nodes become heavily loaded with both data and queries.
- Flexible File Access and Distribution
- 0din: Provides unrestricted access to files, with users able to download from any node hosting the desired content. There are no built-in restrictions on file availability.
- BitTorrent/IPFS: Often involve mechanisms for rate-limiting, seeding requirements, or access controls, which can restrict file availability and download speeds.
- Admin-Controlled Content Compliance
- 0din: Content compliance is managed by individual node admins, who are responsible for handling copyright and DMCA issues according to their local regulations. This decentralized approach allows flexibility in content management.
- BitTorrent/IPFS: Content management is less flexible, with issues often handled by central entities or through network-wide policies.
- Autocategorization Based on Path and Extension
- 0din: Automatically categorizes files based on their directory path and file extension, simplifying the organization and searchability of large datasets.
- BitTorrent/IPFS: Generally do not include built-in categorization features, relying on external metadata or user-added tags.
- Efficient Peer Discovery
- 0din: Utilizes gossip-based peer discovery with a constant heartbeat ping to maintain an up-to-date list of active nodes, ensuring efficient network operation and node management.
- BitTorrent: Depends on trackers or DHT for peer discovery, which can be subject to central points of failure or inefficiencies. IPFS uses a similar DHT-based approach.
- Community-Driven Expansion
- 0din: Leverages the contributions of data hoarders who bring substantial storage capacities to the network, creating a massive, distributed archive of information.
- BitTorrent/IPFS: Expansion often depends on broader adoption and community support, with no specific focus on data hoarders or large-scale individual contributions.