Our goal is create an application where anyone can earn sharing files.
Nosso objetivo é criar um aplicativo onde qualquer pessoa possa ganhar compartilhando arquivos.
App Overview: The Decentralized Network Aggregator
This application is a Java-based Desktop GUI tool designed to manage, analyze, and aggregate files across multiple remote servers. It acts as a federated client that connects to various web servers (domains) listed in a local text file to perform tasks like ranking file popularity, mirroring content, discovery of remote file lists, and searching for specific user data across the network. PHP code helps create , insert and feed the static website and facilitate view, navigate, hosting etc.
It operates entirely without external dependencies, using standard HTTP protocols to "talk" to servers.
Core Features & How They Work
1. Rank (Analytics)
- What it does: Calculates which files are the most popular or most referenced in your input list.
- How it works: It reads your local
files.txt line by line. It strips away the domain (e.g., https://test.com/) to focus only on the filename (e.g., image.jpg). It counts how many times each filename appears and displays a "Top 100" leaderboard.
- Utility: Useful for identifying trending content or finding duplicate assets spread across different servers.
2. Download (Asset Mirroring)
- What it does: Downloads the files listed in
files.txt to your local machine, but with a "smart twin" feature.
- How it works:
- Direct Download: It downloads the URL found in the text file into a local files folder.
- JSON Twin Check: For every file (e.g.,
photo.jpg), it automatically assumes there might be a metadata file on the server in a specific /json/ folder (e.g., photo.json). It checks if that metadata file exists, and if so, downloads it to a json folder.
- Utility: Great for backing up media libraries where every media file has an associated data file (metadata) that needs to be preserved together.
3. Servers Download (Crawler/Discovery)
- What it does: This is a "discovery" mode. Instead of just downloading the specific URLs you have, it asks the servers for their list of files and downloads everything.
- How it works:
- It extracts the unique domain names from your local list.
- It attempts to download a
files.txt from the root of those domains.
- If successful, it parses that remote list and recursively performs the Download logic (including the "Twin JSON" check) for every file listed on the remote server.
- Utility: Allows you to sync your local machine with the full contents of multiple remote servers without needing to know every specific URL beforehand.
4. Search (Data Aggregation)
- What it does: Searches across all known servers for a specific user's data file and consolidates the results into a single local database.
- How it works:
- You type a username (e.g., "bob").
- The app checks every domain in your list for a specific path:
/json_search/bob.json.
- If found, it downloads the content.
- Consolidation: It parses the downloaded data and appends unique entries into a master file locally (
json_search/bob.json). It ensures no duplicate file hashes are recorded.
- Utility: This creates a decentralized search engine. If "Bob" has data split across 5 different servers, this tool merges them into one complete profile on your computer.
5. View (Browser Interface)
- What it does: Allows you to browse the search results visually without downloading the files locally.
- How it works:
- It performs the same network search as above.
- Instead of saving the data, it parses the JSON results in memory.
- It generates an HTML list of clickable links.
- Smart Redirection: The links don't point to the file directly; they point to a
redirect.html script on the server, passing the file's hash as a parameter.
- Utility: Turns the app into a web browser for your decentralized network, allowing you to access content on remote servers via a unified interface.
Why is this Useful?
- Decentralization: This tool removes the need for a central "master server." As long as you have a list of domains, the client (this app) does the work of stitching the network together.
- Resilience: If one server goes down, the "Servers Download" and "Search" features allow you to easily find and retrieve content from other servers in your list.
- Data Integrity: The "Twin Check" (downloading JSON alongside media) ensures that you don't just get the image/file, but also the context or metadata associated with it.
- Efficiency: The app checks if a file exists locally before downloading, saving bandwidth. It also checks if a file exists remotely (using HTTP HEAD requests) before trying to download, preventing errors.
Mental Model of the Architecture
Imagine you have a library card (the app) and a list of library addresses (files.txt).
- Rank: You look at your list and see which book titles appear at the most libraries.
- Download: You go to the libraries and borrow the specific books on your list, plus their index cards (JSON).
- Servers Download: You go to the front desk of each library, ask for their master catalog, and borrow everything in it.
- Search/View: You ask every library, "Do you have a folder for the author 'Bob'?" You then compile a master bibliography of Bob's work from every library combined.
Nosso objetivo é construir um sistema que funcione da seguinte maneira: O usuário envia um arquivo e deposita um valor. Quanto mais esse arquivo for acessado ou distribuído maiores serão as recompensas e ganhos do usuário. Em outras palavras, nosso objetivo é construir um sistema de investimento em arquivos onde a monetização ocorre de maneira descentralizada.
Para isso ser possível é necessário um sistema onde cada arquivo é associado ao seu dono, proprietário ou usuário exclusivo que lhe enviou primeiro. Isso ocorre criando um documento de texto imutável com as informações do arquivo que foi enviado (como descrição, categoria, chaves ou endereços de criptomoeda do usuário). Esse documento deve ser distribuído entre todos servidores.
Idealmente mesmo em um site ou servidor estático poderia ter ganhos. Ele ganharia meramente por armazenar dados importantes para a rede mesmo que não fizesse nenhuma operação, validação ou verificação adicional. Ainda que estático, seria possível adicionar ferramentas simples de pesquisa, redirecionamento ou paginação usando JS.
Utilizar MySQL ou outro banco de dados poderia auxiliar em transações de menor importância ou rápidas. Esse sistema não substitui o descentralizado, mas o complementa.
Resumindo, nosso objetivo é oferecer um sistema simples para armazenamento distribuídos de arquivos com baixo custo, baixa barreira de entrada ou adesão e fácil adoção. Mas que pode ser facilmente expandido, utilizando em conjunto ou servir de base para a construção de uma blockchain, sites de vendas e sistemas mais robustos.
Download sourcecode (código-fonte)
Our goal is to build a system that works as follows: The user sends a file and deposits an amount. The more this file is accessed or distributed, the greater the user's rewards and earnings. In other words, our goal is to build a file investment system where monetization occurs in a decentralized manner.
For this to be possible, a system is needed where each file is associated with its owner, proprietor, or exclusive user who first sent it. This is done by creating an immutable text document with the information of the file that was sent (such as description, category, the user's cryptocurrency keys or addresses). This document must be distributed among all servers.
Ideally, even a static website or server could earn. It would earn merely by storing data important to the network, even if it performed no additional operations, validation, or verification. Even if static, it would be possible to add simple search, redirection, or pagination tools using JS.
Using MySQL or another database could assist with less important or fast transactions. This system does not replace the decentralized one but complements it.
In summary, our goal is to offer a simple system for distributed file storage with low cost, low entry or adoption barrier, and easy adoption. But one that can be easily expanded, used in conjunction with, or serve as a basis for building a blockchain, sales websites, and more robust systems.