Yeah these types of hacker stories kind of bug me. They are sort of in the same vein as "you can eat for free by going to McDonald's and eating a pint of ketchup without ordering anything" or "How I drank and showered for a year using public water fountains" . Or put another way "just because you can doesn't mean you should". Trustless societies kind of suck and forcing society to lower trust by abusing trust kind of makes things incrementally suckier ("trust" here being "it's on the honor system to not abuse DNS to serve static content").
But the demo version of Doom just isn't that large; Cloudflare will host much larger files than that for free via Cloudflare Pages/Workers. This project is clearly meant as a fun proof of concept, not some novel way to host 3 MB for free.
The placement of coffee cups on a table can be used to encode data.
At that point, only your audience needs to know that data is there.
gopher -> gopher://magical.fish, gopher://sdf.org...
gemini -> gemini://gemi.dev, it has geminipedia, a web to gemini converter reading sites over gemini at great speeds.
irc -> servers from https://bitlbee.org will allow upon connecting to a registered IRC account to several protocols in the server. For instance, XMPP users will appear as IRC users and groupchat can be created as IRC channels. Ditto with Mastodon, Discord...
mail/usenet -> well, except for big attachments and news binaries (free NNTP servers will just serve text) once you used something like mbsync/msmtp to store your IMAP mail locally and send email ondemand (and ditto with Usenet with slrnpull doing the same exact same task for pushing your writtings and pulling down new articles) everything would just work slower, but usable enough as it can be just batch-uploaded/downloaded overnight.
Iodine it's really great for open but paid wifi services behind portals, such as some hotels, airports...
It won't give you broadband speeds but you can at least chat with people, read some blogs or news at https://lite.cnn.com or https://text.npr.org or get some classic from Gutenberg. That's better than nothing.
Airplanes and many other captive portals will allow DNS traffic, but restrict everything else. Such things can be used to get free internet in such environments. It is indeed an abuse of protocol, and future protocols are going to make life difficult for everyone to prevent such abuse.
Thanks for the share!
Maybe such a silly project already exists?
Ah, I couldn’t remember the name because it’s literally named Google File System. https://static.googleusercontent.com/media/research.google.c...
I seem to remember bigtable also being interesting.
More than that, you might enjoy MIT’s distributed systems course. It’s all freely available online. I went through it for fun a decade ago or so, and it’s worthwhile for reasoning through hard problems like this.
People have definitely (ab)used YouTube as a filesystem though. And that’s probably your best bet for durability and performance.
Another silly (compression-based) idea I had was to:
- Index say google images, or something else with a large amount of URL -> data
- Find patterns in the indexed data that match patterns in your data, such that storing the URL and an offset into the data (or something more complex) would be smaller than the data chunk you are trying to compress
- Repeat for all chunks
- After you're done you can run it again and again. Infinite compression!
Yes the user has to download WAY more data that what they are trying to extract, and you'd need an insanely large index to be able to compress, but hey it was an idea.
> Irmin is an OCaml library for building mergeable, branchable distributed data stores.
At this point I am wondering if people will somehow port DOOM over to the MONIAC.
DNS … cannot, and that's why the person upthread is criticizing the use of the word "run" here. DNS ran nothing.
https://en.wikipedia.org/wiki/ENIAC
https://en.wikipedia.org/wiki/Phillips_Machine (MONIAC)
I'd say both are looking increasingly doable.
ICMP packets can be arbitrary length, and there are plenty of tcp-over-icmp tunnels.
There was this article a long time ago about using packets in transit as storage/memory, mischeivously for free.
Turns out this is how early memory worked, i think it was called delay line memory, made of mercury, i think PDP and DEC era
That's plain wrong. DNS was specifically designed to store arbitrary data, cf. the Hesiod name class.
https://www.youtube.com/watch?v=GoPWuJR6Npc
without the colour i did it in a worse way for bad apple
Now let's do
(1) A DNS file drop: Split small files into TXT records and rebuild them client-side. Useless for big files, perfect for config blobs, tiny payloads, and cursed demos. Also someone can write an S3-compatible client.
(2) Redis DNS:
- GET foo.cache.example.com -> TXT record returns value chunks
- TTL is the eviction policy
- Cache invalidation becomes even more of a hate crime.
https://github.com/resumex/doom-over-dns/tree/main/TXTRecord...
Okay?
There's the Infocom ZMachine with Zork I-III, Tristam Island, Calypso (Z machine v3 games) and many more which can be run starting from a PostScript file to a pen, a simple FPGA machine, an Amiga, the original Game Boy and who knows what.
If you can port a libre interpreter, you can run it. Old PDA's, Smartphones, JS browsers, Windows 95 machines with Winfrotz, DOS, Raspberry Pies with GNU/Linux, Riscos... There are emulators even written in Perl, Python, Lua, tons of them. It's text based output and the Z machine format it's documented.
I think some Activision games had the the Zork game embedded on their engine as an Easter Egg. As it's an 'easy' task for any programmer embedding it under a fake ingame computer woudn't have been a daunting task.
Maybe I can adapt the PostScript one to Eforth under the Subleq VM, PS' syntax maps slightly ok to EForth...
With Asterisks and some old modules you can even play it over a VOIP client and listen to the output with Flite/Festival/Espeak-nG or any compatible TTS software, such as PicoTTS. The voice input it's done with CMU Sphinx.
Something Doom can't do at all.
Why does everything get turned into an LLM discussion?
Obviously it still didn't click for you or you're lying about looking at the GitHub, because if you did, you'd have learned that it's not using DNS to run DOOM, only to store it. Which...shouldn't really be a surprise to anybody who knows that DNS TXT records exist.
Neither one plays Doom over DNS nor is the first paragraph in the README correct, because DNS is only abused for storage, not for computing/processing/executing instructions:
> At some point, a reasonable person asked "DNS resolves names to IP addresses, what else can it do?" The answer, apparently, is run DOOM.
(Or AAAA, or CNAME, or…)
https://blog.benjojo.co.uk/post/dns-filesystem-true-cloud-st...
Of course, I imagine it would be incredibly slow.
all you need is to rapidly push off one foot and land on the other, and you have running.