One thing that I’ve been really into lately has been ENS names. As someone who’s already obsessed with buying domain names, ENS names have been an even greater obsession (mostly because of emoji names, like ✊🏾✊🏾✊🏾.eth)!
So what are ENS names, exactly? And what is a “decentralised website”?
Let’s start with ENS. The Ethereum Name Service is a naming system based on the Ethereum blockchain. It has a lot of parallels with the Internet’s Domain Name Service (DNS) in that both of these services are used to map human-readable names to less human-readable characters. Where DNS names map to IP addresses, ENS names can map to cryptocurrency addresses, content hashes, and other metadata.
For example, I have the ENS name bitsofcode.eth, which maps to the ETH address 0x3ca2FC4f1F207178Fee25a9Aa8676ec00292dcfc. If someone (👀) wanted to send me Ether, they could simply put in the ENS name instead of copying and pasting the longer, less user friendly, address.
As I mentioned, ENS names can map on to more than just cryptocurrency addresses, and this is where the really fun part comes in. In addition to metadata like a website or twitter username, we can also map an ENS name to what’s called a content hash. A content hash, similar to an IP address, is a unique identifier for hosted content, i.e. files. However, unlike IP addresses that are based on a location where content is stored, content hashes are based on the content itself. This may not make a lot of sense now, but we’ll see how this distinction matters when we setup our dWebsite below.
So how and where do we host these files? That’s where IPFS comes in! The InterPlanetary File System is a “distributed system for storing and accessing files, websites, applications, and data”. Unlike other hosting options which have a centralised server, IPFS is ✨decentralised✨. It’s powered by a peer-to-peer network that stores and relays content as needed. If you’ve ever used BitTorrent, it’s a very similar concept.
Both ENS and IPFS together form the Decentralised Web - websites that are hosted via a decentralised system such as IPFS, and accessed via a decentralised name service such as ENS.
