> Cloudflare will serve them globally, for free, cached at the edge, to anyone who asks. They are not a file storage system. They were not designed to be a file storage system. Nobody at the IETF was thinking about them being used as a file storage system when they wrote RFC 1035. And yet here we are.
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").
Look, if this was a project on using DNS to replace Dropbox or something, I'd agree with you.
But the Doom demo really isn't that large, this isn't going to use or cost anyone substantial bandwidth. Cloudflare will gladly host significantly larger files for free the "normal" way using Cloudflare Pages/Workers. It's clearly just a fun proof of concept.
I’ve heard rumors that DNS records are also sometimes used in some steganography-type communications. Great way of passing small messages in a ubiquitous and innocuous system, unlikely to be blocked or raise eyebrows by accessing.
To clarify, a good title would be "Loading Doom entirely from DNS records"
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.
My old late friend Dan Kaminsky famously wrote the Perl module "Ozyman DNS", which allowed you to tunnel ssh session over the DNS, thus evading certain firewalls such as those controlling access to public WiFi. Modern public WiFi setups filter the DNS too, rendering this technique moot, but I remember using "Ozyman DNS" to get WiFi access on the Caltrain and that was highly satisfying.
Harder Drives is such a great watch. It's also the source of a personal epiphany over the idea that you can store data in the space between you and a reflective surface or retransmittor or whatnot.
SDo its Friday why not ask Claude do something dumb! http://github.com/elmobp/ping-doom Doom over pure icmp you need root though the other one it spat out was doom over git
I once had this silly idea to create distributed storage of arbitrary data by exploiting a range of completely unrelated sites. Say, when you want to upload your file to the System, it may store one encrypted chunk as an image on a free image hosting site, another chunk as an encoded blog post on a random forum about farming (or in the user profile?), another chunk as a youtube video, etc. Imagine having something like hundreds or thousands of such "backends". Every chunk would be stored in 3 places for high durability of course. Free storage, hidden in plain sight :) Although, I didn't think through how to store the index reliably, and, because a moderator on a random farmers' site may delete our record(s), there needs to be a system which continously validates the integrity and reuploads the chunks.
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.
I never stop being impressed by these "<something-crazy> running Doom" posts. AFAIC, whenever we get to Mars, we won't truly have arrived until someone is playing Doom on Mars, and without wasting valuable resources by doing so. Running Doom, the canonical measurement of truly mastering a thing's capabilities.
very cool, i did something similar but turning the doom frame running on a server into ascii (with colour) and then a small shim to give inputs via subdomains
(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.
Another fake Doom run, like the predictor one. This doesn't actually run Doom. Sorry. Meanwhile, other esoteric platforms actually runthe software.
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.
I read this title, did a double-take, then had to go look at the git hub because it still didn't click for me. Because this sounds absolutely amazing, and absurd, and weird, all at the same time. Like..... Wow? Talk about turning protocols into pretzels...
> had to go look at the git hub because it still didn't click for me
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.
And obviously your forgetting that doing this is from my perspective a very novel idea and I didn't consider a TXT record as a data storage system. Good grief.
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 Doom demo really isn't that large, this isn't going to use or cost anyone substantial bandwidth. Cloudflare will gladly host significantly larger files for free the "normal" way using Cloudflare Pages/Workers. It's clearly just a fun proof of concept.
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.
https://boingboing.net/2004/06/21/tunneling-ssh-over-d.html
https://vgel.me/fiction/gyre/
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.
At this point I am wondering if people will somehow port DOOM over to the MONIAC.
https://en.wikipedia.org/wiki/ENIAC
https://en.wikipedia.org/wiki/Phillips_Machine (MONIAC)
I'd say both are looking increasingly doable.
DNS … cannot, and that's why the person upthread is criticizing the use of the word "run" here. DNS ran nothing.
https://www.youtube.com/watch?v=GoPWuJR6Npc
without the colour i did it in a worse way for bad apple
https://www.youtube.com/watch?v=AJ2Q12vYojY
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://blog.rice.is/post/doom-over-dns/
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.