Meento Share (aka meshare)

java MesharePrompt

Search a network of
file servers from
one prompt



The goal of Meento is to enable static websites to make their files available for search and download easily. Each file is saved using its hash as the name, and additional information is stored in a JSON file.

In other words, think of a simplified network where all transfers occur directly over the HTTP protocol. The "index.php" (or main page) replicates all files it receives directly via the POST method to a list of servers. Searching is performed by requesting the list of all JSON files that each server has. To avoid flooding or overloading (for example, making 200 requests to a server that has 200 JSON files), the user or client does not request the files and hashes it has already downloaded, but rather loads their information locally.

There are two interesting fields in the JSON file: "public_key" and "server_public_key". There is no concrete implementation of how they should work, but it is presumed that "public_key" should be a key inserted by the user themselves when sending a file to ensure they are the owner. "server_public_key" should be the key of the server hosting the file. Tools and mechanisms for consensus or rewards can be created based on this data, at the discretion of the user, the server, or third parties ('MeshareMiner.java' and 'FileIntegrityChecker.java' are an incipient example of this).

Aiming for the healthy long-term growth of the project, our license (MEENTO1.0) is not open-source but merely makes the code available for audit and verification. You may freely share, host, and replicate the code, and even profit from advertisements, as sell it or other services, as long as you do not modify the code. You may make modifications to the code provided that you use the same license and do not generate any form of profit (strictly for personal or institutional use).

Using Meento is very easy!

MesharePrompt is a single-file Java 8 console program that queries every server in your list, matches files by their metadata, and downloads them only after verifying the SHA-256 hash actually matches the filename. No GUI, no external libraries, no build tooling — just a > prompt.

Three files, one folder

Drop MesharePrompt.java next to a servers.txt that lists one server base URL per line, then compile and run with the standard JDK — nothing else to install.

StepCommand
Compilejavac MesharePrompt.java
Runjava MesharePrompt

Everything happens at the prompt

Plain text searches. Everything else is a flag.

TypeEffect
any textSearch every server, results stream in live
a numberDownload that result (hash-verified)
allDownload every result from the last search
-optionsToggle random tries, set result limit
-getallDownload every file from every server
-helpShow the command list again
-exitQuit

What it actually guarantees

Hash-verified downloads
A file is only saved if its SHA-256 matches the hash in its filename — otherwise nothing is kept.
Skips what you already have
Already-downloaded hashes aren't re-requested or re-fetched, but still appear in results from local cache.
Streams results as it finds them
No waiting for every server to respond — matches print the moment they're confirmed.
Bounded by design
200 results per search, 512 characters per metadata field, both enforced automatically.
Malformed entries are skipped
Any files.txt line that isn't a valid sha256.ext filename is ignored.
Every download is logged
A JSON entry is written to log/ recording what was downloaded and when.

What lands on disk

files/ downloaded binaries, named <hash>.<ext> info/ downloaded metadata, named <hash>.json log/ one entry per successful download