Almost all of the Internet-based applications we have been using are centralized, that is, the servers of each application are owned by a particular company or person. Developers have been building centralized applications and users have been using them for a pretty long time. But there are a few concerns with centralized applications that make it next to impossible to build certain types of apps and every app ends up having some common issues. Some issues with centralized apps are that they are less transparent, they have a single point of failure, they fail to prevent net censorship, and so on. Due to these concerns, a new technology emerged for the building of Internet-based apps called decentralized applications (DApps). In this chapter, we will learn about decentralized apps.
In this chapter, we'll cover the following topics:
- What are DApps?
- What is the difference between decentralized, centralized, and distributed applications?
- Advantages and disadvantages of centralized and decentralized applications.
- An overview of the data structures, algorithms, and protocols used by some of the most popular DApps
- Learning about some popular DApps that are built on top of other DApps.