You can register a Domain name for your Ethereum account for some period of time. The maximum time is 2,000,000 Ethereum blocks ( about a year ) The domain name is in fact a ibinary 32 byte value. It can be interpreted as UTF8 encoded string. This is the solution for the name erosion problem. If you have registered a domain name and then lost the private key, the name will not be lost for everyone forever.
While you own a domain you can prolong the ownership.
If you failed to prolong the ownership and the domain expired, then anyone can claim the ownership for it.
You can register as many as you want ID's for your domain (name:value pairs).
If you want to sell your domain, put a price on it. Once the price is set, anyone can pay and take the ownership. No communication with you is needed.
If you want to transfer the domain to someone, you simply specify the new address in the Transfer field. The owner of that address, and only them, can then pay the price and claim the domain.
EtherID allows you to store sha256 multihash values as the ID values. Then you can use the EtherID/IPFS gateway to get access to the IPFS resources. You can read more EtherID/IPFS
The official NodeJS module to communicate with the EtherID contract is etherid-js
There is a Chrome Extension available for redirecting urls. etherid-chrome
EtherId contract address: 0xd588b586d61c826a0e87919b3d1a239206d58bf2. Please note , that the contract is verified, so you can see the source code of the contract.
In order to make it work with your local geth, you need to start it with those parameters:
geth --rpc --rpccorsdomain "https://etherid.org"
Please note that using --rpccorsdomain "*" is dangerous.