STEEM DNS - Your username DOT STEEM. DNS on the Blockchain

A few days ago @dan @dantheman suggested someone should set up a DNS (domain) system with the JSON Metadata. I decided to take that challenge on and see how quickly I could get it up.

The end result? A working .STEEM domain, entirely on the blockchain. Sadly, like Namecoin domains, you'll need to set up a custom DNS server.

If you want to try it out, and you're willing to change a few settings on your PC, follow these instructions and swap out the "Primary DNS" for the following IP address:

My public DNS server is: 159.203.22.60

Be aware that by using someone else's DNS server, all of your DNS queries will go to them. This could allow someone to do bad things, like redirect your bank or bitcoin sites to a phishing page silently and steal your accounts. While I'm highly trusted in the Litecoin community, and somewhat trusted within the Bitcoin community, others might not be. Keep this in mind if you choose to use someone's public DNS server.

I'll try to get an easier way of doing this in the next few days, with a proxy domain for those who don't want to change their DNS settings. I'll be making the program for this open source once I've cleaned it up a bit, and producing a guide for others who want to set up their own DNS, which will remove the security risk of using someone else's public DNS.

How can I set up a .STEEM domain?

There's no web interface for this just yet (but there might be one in the next few days depending on how interested people are), however if you have cli_wallet, you can set your JSON metadata to look like this (subdomain blank or @ works for root domain):

{
    "dns": {
        "records": [
            [SUBDOMAIN, RECORD_TYPE, CONTENT, PRIORITY (ONLY FOR MX RECORDS)]
        ]
    }
}

Here's an example for my domain:

update_account_meta someguy123 "{\"dns\": {\"records\": [[\"@\",\"A\",\"5.196.157.116\"]]}}" true

That command sets the root domain, i.e. someguy123.steem to point to the IP address 5.196.157.116 using an A Record. As soon as my DNS server picks up the new block, the change will be live almost instantly.

How does it work?

I run a DNS server on the public IP at the start of the guide. The DNS server has a script watching the STEEM RPC server.

As soon as new blocks come in, I check if any users have updated their JSON Metadata. If so, then I parse it, extract the records, and feed them to a database.

Finally, as DNS requests come into my server, they hit that database, allowing you to see people's .STEEM domains in a simple way.

Got any questions? Leave them in the comments and I'll answer them.

H2
H3
H4
3 columns
2 columns
1 column
46 Comments