* I'd like to make it compatible with existing internet infrastructure so that the only place we have to touch is resolvers on existing DNS servers. This means the "+" might not work, I'll have to look at it.
I agree. I think whatever we do, it's incredibly important that we do not break the entire current internet infrastructure. I just did some quick testing by modifying /etc/hosts on my system. Both ! and + do not work well with Chrome and Firefox. Both browsers do not bother trying to lookup a DNS if I do "test!tld". Surprisingly, Firefox does do the lookup with "test+tld" but Chrome does not. Also if I try to ping the domains in a terminal, "test+tld" does work, but "test!tld" has some problems because you need to escape the ! (so "test\!tld" works). For this reason I am really against using the ! or + as a separator in domain names. Also, @ is even more problematic than ! or +. What I did find that works however is the underscore. The domain "test_tld" does resolve in Firefox and the terminal. Unfortunately in order to make Chrome resolve it rather than just search for the query "test_tld" you are forced to put a forward slash after it ("test_tld/"). But that's okay since it would normally be there in typical URLs (e.g. "
http://test_tld/blah/blah?foo=bar"). Not adding the tld at the end also works, meaning "test_/" resolves everywhere.
I don't particularly like this approach. All of these approaches seem to me like a big hack to get around ICANN conflicts. But if we must do it, I would be okay with _ being used as the separator. It is already not allowed in the list of KeyID names which is a big plus. This means we could have various different _tld extensions for each sale model we come up with:
- domain_p2p -> Website pointed to by the name "domain" in guaranteed-ownership model
- domain_web -> Website pointed to by the name "domain" in the carrying-cost model
- first-last_key -> Website pointed to by the KeyID "first-last"
Also, all current and future ICANN domains/TLDs would work without conflict (unless ICANN decides they want to allow _ in their TLDs).