
Show HN: Wikipedia over DNS - adtac
https://wpodns.adtac.in/
======
askmike
Great start, but plain text in 2020?

I propose we design a markup language so this can be parsed. How about DTML?
And maybe some styling rules as well, we can call it DSS. And we can't forget
a basic scripting language called DJS.

I'll start working on the parser, we can call it a drowser.

~~~
hising
I'll have to say that DTML seems to be a mess and missing the point and
suggest we start working on XDTML.

~~~
ainar-g
XDTML 2.0 you mean? XDTML 1.0 is merely a serialisation of DTML. With XDTML
2.0 in place, the real fun can start!

------
geocrasher
A while back I showed how you could drop data into a server log file, and
jokingly called it CurlyTP. I have thought many times about embedding a
website directly into DNS.

[https://miscdotgeek.com/curlytp-every-web-server-is-a-
dead-d...](https://miscdotgeek.com/curlytp-every-web-server-is-a-dead-drop/)

Anybody up for the challenge? With some scripting you could do a dig on a TXT
record, parse it, and display it right in a web page.

~~~
3xblah
For some reasons I always had the idea of using HTTP headers and server logs
to pass data. It can, e.g., be an alternative way of passing request/query
input to a server, instead of using URLs or HTML forms. The server can read
filtered input from a log file stored on RAM disk.

I did the TXT record as HTML idea many years ago by modifying djb's dnstxt to
output valid HTTP header. The idea was to use tinydns and dnscache as a "back-
end" database to store millions of tiny "webpages".

A true Rube Golberg machine.

------
ape4
$ dig dns.wpodns.adtac.in txt

dns.wpodns.adtac.in. 3600 IN TXT "The Domain Name System (DNS) is a
hierarchical and decentralized naming system for computers, services, or other
resources..."

------
dang
The opposite way from yesterday:
[https://news.ycombinator.com/item?id=22790425](https://news.ycombinator.com/item?id=22790425)

~~~
aledalgrande
I wouldn't say it's the opposite. It sounds the opposite from the title, but
this actually returns Wikipedia content. The other one fetches a link to a
site.

~~~
dang
I just meant opposite in the most trivial sense:

    
    
      (reverse '("Wikipedia" "over" "DNS"))
      => ("DNS" "over" "Wikipedia")

~~~
shepherdjerred
finally my lisp class has aided me in a real-life scenario

~~~
onionisafruit
I never had a lisp class, so I'm sitting here wondering why there is one
single quote.

~~~
dang
Out of curiosity, did the sibling replies to your comment (all of which are
accurate!) answer your question, in the sense that you now understand?

------
bobbiechen
A few other implementations of "DNS as database":

DNS-FS: [https://blog.benjojo.co.uk/post/dns-filesystem-true-cloud-
st...](https://blog.benjojo.co.uk/post/dns-filesystem-true-cloud-storage-
dnsfs)

DNS as a config management database:
[https://www.lastweekinaws.com/podcast/aws-morning-
brief/whit...](https://www.lastweekinaws.com/podcast/aws-morning-
brief/whiteboard-confessional-route-53-db/)

"A globally-distributed, eventually-consistent, 100% available key-value store
;)" (I haven't actually tried running this code personally):
[https://github.com/craftyphotons/ten34](https://github.com/craftyphotons/ten34)

------
tonymet
this is great. DNS TXT records are under appreciated. It's a distributed key
value store with distributed caching

~~~
caseyohara
I had never thought of it that way. What is a practical use for using TXT
records a distributed KV store?

~~~
tonymet
distributed config.

------
k__
I love those!

The most impressive one I saw, was IP over DNS.

~~~
willcipriano
You may be talking about iodine:
[https://code.kryo.se/iodine/](https://code.kryo.se/iodine/)

You can host it yourself.

~~~
btrettel
Unrelated comment: I like this sort of web design. Might just be nostalgia. It
reminds me of web design circa 2001 or so. You can see many similar examples
on OSWD, e.g.:

[http://www.oswd.org/design/preview/id/9/](http://www.oswd.org/design/preview/id/9/)

[http://www.oswd.org/design/preview/id/3/](http://www.oswd.org/design/preview/id/3/)

[http://www.oswd.org/design/preview/id/6/](http://www.oswd.org/design/preview/id/6/)

[http://www.oswd.org/design/preview/id/45/](http://www.oswd.org/design/preview/id/45/)

------
koolba
Nice. Now let’s get Wireguard over DNS and be done with it.

~~~
qubex
How about WireGuard over DNSSEC and call it a day?

------
jamieweb
Would it be possible to support returning a larger excerpt of the article
within a single TXT record?

You should be able to get up to 64 KiB (minus a few bytes for headers, etc)
within a TXT record. The lookup will have to use TCP though.

~~~
zamadatix
Large single record seems to work fine testing from BIND via Windows nslookup
as long as you obey the 255 character per line rule i.e. split strings "like"
"this" at least every 255 characters.

------
tomcooks
The other day, while I was messing with Letsencrypt TXTDNS auth I was
wondering:

Is there a problem with updating DNS TXT records too often?

It could become an interesting way to create a "decentralized" microblogging
network.

------
lAz2imOvV
There are a few examples in rubydns code eg.
[https://github.com/socketry/rubydns/blob/master/examples/wik...](https://github.com/socketry/rubydns/blob/master/examples/wikipedia-
dns.rb)

------
brchn
> Who knows, maybe we'll have DNS over Wikipedia over DNS one day.

Looks like my weekend got more interesting

------
easrng1
I actually made this same thing recently: [https://github.com/easrng/wiki-
pdns](https://github.com/easrng/wiki-pdns)

------
_threads
That’s really cool ! A security teacher told me a long time ago about these
possibilities and I love the concept, I love Wikipedia and I love plain text,
so thanks a lot for this !

------
parhamn
Couldn’t this actually be useful in countries that block Wikipedia?

~~~
Arnavion
Those countries would just block adtac.in recursively when they noticed.

And if you decide to work around that by setting up more domains to do this,
then you could just as well use those domains to front regular proxy servers.

------
totetsu
Now do it for stack exchange sites :)

dig how-do-i-block-edit-in-vim.wpodns.adtac.in txt

~~~
0-_-0
I think you meant how-do-i-exit-vim.wpodns.adtac.in

~~~
totetsu
:exec system("dig how-do-i-exit-vim.wpodns.adtac.in txt +short| tr -d '\"'")

