The headless storage network.
Donate Monero:
83BGShZv9hU9P9SRLjhRGJYQ4WatMNazKVFG6eKyHc6HguBzu1vH54R7mQJaZzeXhx4jDxnkNJMizLXrFFN4ARffEwFj82y
🌐 Open Source!
🔗 Clone the GitHub repository!
🖥️ Run your own node and contribute to a free and open network!
🛠️ Be part of the solution against censorship!
This site is part of the Hydrafiles network. It may be a mirror, a cdn, a storage server, just a gui, or all of the above.
Hydrafiles is the headless storage network. Anyone can be a part of the network. Hydrafiles allows for anyone to host & serve files anonymously via HTTP.
In a world where information is freedom. We believe that the people have a right to access the world's information. We believe the people of Russia, China, Iran, America, North Korea, and the rest of the world, all deserve access to the same information. Most people don't use anti-censorship tools when they're inconvenient. We can't control the people. I personally wish the whole internet ran on I2P. But that's never going to happen because it's slow and inconvenient for users. Torrents died off because streaming is more convenient. Piracy is back because subscriptions have gotten inconvenient. Hydrafiles realises that the people don't want to trade their convenience for freedom. Unfortunately, not all hosts have the luxury. With global censorship of whistleblowing and propaganda at an all time high, it is, now more than ever, crucial for people to be able to anonymously serve files to the masses.
P.s. Censored hosts that need Hydrafiles level security are likely also being censored in other ways. Please consider donating Monero to make this possible:
83BGShZv9hU9P9SRLjhRGJYQ4WatMNazKVFG6eKyHc6HguBzu1vH54R7mQJaZzeXhx4jDxnkNJMizLXrFFN4ARffEwFj82y
TLDR: This scene ^
P.s. This gif was served by Hydrafiles
When someone tries to download a file, nodes with the file will serve it directly. Nodes without the file will then ask other nodes for the file, once they find another node with a file, they will respond to all requests saying they have it, each of them forwarding it on, saying they have it, etc. until the original node is reached, with a message from all nodes they connected to, saying they have it. If no one has it, all nodes will end up giving a no response, telling the user that it isn't hosted anywhere. This design allows for better than TOR level security, for serving static files via HTTP. A core improvement over TOR is that all hosts and relays look identical, which they don't when using TOR.
The Hydrafiles network does NOT provide privacy to the end user. The node you initially connected to, can see exactly what you're doing. If you need to download files discretely, use TOR when accessing Hydrafiles. Hydrafiles itself does not protect files. All data on the Hydrafiles network can be seen by all nodes. Sensitive files MUST be encrypted before submission to the network.
No one, anyone, everyone. Hydrafiles doesn't have a head. It's simply an API specification. Anyone can setup a domain, server, or S3 bucket, and add it to the network. The more people that decide to do this, the stronger the network.
You can't. If a server in the network is hosting a file, it will look like everyone is hosting that file.
You can contact the site that is hosting your file.
When you call a Hydrafiles site, if it's not hosting the requested file, it will check with other Hydrafiles sites and pull the file from them. This means no matter what Hydrafiles API you call, as long as one Hydrafiles site is serving a file, they all are.
Hydrafiles is everywhere. With the goal of being cross-border, we ask people like you to contribute to the movement, by setting up cross-border domains and servers.
Because of Hydrafiles' layered approach, it is impossible to prove someones level of involvement in Hydrafiles. Domain providers may either be hosting their own servers, or pointing to other servers. Server providers may be hosting files, or may only be mirroring another providers files.
To ensure resiliance, it is crucial to the protocol that servers and domains are evenly distributed between "unfriendly" states. This includes; China, Russia, America, and Iran. As well as politically neutral countries such as Sweden. Ensure you aren't violating local laws when deciding on a region.
If you don't own a domain, you can use TLD List to find the sellers with the best price. If you'd like to buy the domain anonymously use Njalla. If you already have a domain, you can use it's subdomain for free
Once you have a domain or subdomain, find a reliable IP here. Then set the following DNS record, replacing xxxx with the IP:
A or AAAA = xxxx
We recommend using a CDN such as Cloudflare.
CDNs cache files which makes download times faster and lowers server load. CDNs also add a layer between the Hydrafiles node you use and the public internet, forcing organisations to send requests to the CDN to find the IP.
If using Cloudflare, be sure to enable the "Cache Everything" rule.
Option A: Rent a server, we recommend SporeStack or Njalla as they don't ask for information.
Option B: Running your own server requires more maintenance, but improves decentralisation. To do this, get an old Mac, Windows, or Linux machine, even an RPI.
Option A: Running a Node improves availability as your node talks to all nodes in the network instead of relying on just one. Your node also verifies that files haven't been tampered with before forwarding it.
To run a full node, go to the GitHub Repo and follow the deploy instructions.
Option B: Running a Reverse Proxy is cheaper, but less safe as file integrity can't be verified. It is not recommended to rely on a reverse proxied node as exit points.
To setup the reverse proxy, first choose a Hydrafiles IP. Then configure Nginx, Caddy, or a similar software to point port 80 to the IP.
When your node first starts, it attempts to announce your node to all known nodes. A few hours after the node first starts, check with other nodes to ensure your node is known. If your node isn't known by other nodes (or this one), you can announce your node here.
To donate storage, you must first run a full node (see Donate Bandwidth). This is crucial so storage providers and proxies can't be differentiated.
When local caching is enabled, your node automatically stores a copy of the most popular files.
In your config.json
file, set the amount of storage you would like to donate. Whenever this limit is reached, unpopular files will be deleted.
You can optionally configure an S3 bucket with your chosen S3 (compatible) provider.
In your config.json
file, set your S3 credentials. Ensure your S3 bucket is only accessible by your server for additional privacy.
Follow the procedure:
Dear Sir/Madam, I hope this message finds you well. We are not hosting any files. We are also unsure who is hosting your file(s). We have forwarded your message to related parties, but are unable to investigate any further. For more information, check example.com. Thanks, your fellow Hydra operator.
This API is cross-compatible with all hostnames listed here with HTTP enabled.
For this example, we will be using a random hostname (https://hydrafiles.com).
Because of the distributed nature of Hydrafiles, it is crucial that you validate the sha256 checksum of the file you download.
Only storage donators can upload files to the network. To do so, run this source code, and add your file to the "files" directory with the filename being the sha256 checksum of the file.
Method: GET
Endpoint: https://hydrafiles.com/download/sha256_checksum
The Signal-Strength
HTTP header is used to approximate number of hops without breaking privacy. This is used to approximate network other statistics such as redudancy.
It works by simulating radio-wave interference. Nodes directly serving the file return a signal strength of 90%-100%. Each node after returns a signal strength 0-10% lower than the previous hop. If a node receives a signal strength of 95% or higher, it defaults to returning a signal strength of 90-100% to further obfuscate the origin.
A simulation with 100k runs provides the following signal strengths:
Hop # | Minimum | Average | Median | Maximum |
---|---|---|---|---|
1 | 90 | 95 | 95 | 100 |
2 | 81 | 92 | 92 | 100 |
3 | 73 | 88 | 88 | 100 |
4 | 66 | 85 | 84 | 100 |
5 | 61 | 81 | 80 | 100 |
6 | 56 | 78 | 77 | 100 |
7 | 51 | 74 | 73 | 100 |
8 | 49 | 71 | 70 | 100 |
9 | 45 | 68 | 67 | 100 |
10 | 43 | 65 | 64 | 100 |
Based on these averages, we can correlate signal strength with number of hops.
Host Name | HTTP Mirror | DNS Mirror | Requires Cloudflare |
---|
Donating a domain/subdomain? Donating bandwidth? Donating storage? Enter your domain/ip here, to be added to the network.
Check the directory an hour after announcing to ensure other nodes have accepted your hostname.
Free information for the people, by the people.
They can't stop us all.