ENS Layers is DNS replacement which goal is to provide custom protocol support. Today DNS is HTTP-first tool with limited set of record types which allow poor extension with TXT records. Thus developers try to implement custom behaviour using files like robots.txt, manifest.json or SPF records.
Any protocol need configuration information and smart contract is the best way to store and manage it in trusted way. Using layers any developer could create and distribute his own protocol to make it widely used.
What do I mean over layers? For example we can create HttpProtocolResolver which specify host IP address where HTTP client should send requests. There should be unlimited set of Resolvers: TLS/SSL, Mail, XMPP, RSS, etc. Protocol resolver is regular ENS name. So any host could provide it’s own protocol and use other protocols if it’s support it. This is described in EIP.
For example we can provide separated resolvers for HTTP and Swarm sites:
http://host.eth -> HttpProtocolResolver holds server IP
bzz://host.eth -> SwarmProtocolResolver holds bzz hash
and for any custom protocol:
But there is some unsolved issue. What to do when host transfers to new owner?