- Building Blockchain Projects
- Narayan Prusty
- 407字
- 2021-07-02 23:45:07
What is a DApp?
A DApp is a kind of Internet application whose backend runs on a decentralized peer-to-peer network and its source code is open source. No single node in the network has complete control over the DApp.
Depending on the functionality of the DApp, different data structures are used to store application data. For example, the Bitcoin DApp uses the blockchain data structure.
These peers can be any computer connected to the Internet; therefore, it becomes a big challenge to detect and prevent peers from making invalid changes to the application data and sharing wrong information with others. So we need some sort of consensus between the peers regarding whether the data published by a peer is right or wrong. There is no central server in a DApp to coordinate the peers and decide what is right and wrong; therefore, it becomes really difficult to solve this challenge. There are certain protocols (specifically called consensus protocols) to tackle this challenge. Consensus protocols are designed specifically for the type of data structure the DApp uses. For example, Bitcoin uses the proof-of-work protocol to achieve consensus.
Every DApp needs a client for the user to use the DApp. To use a DApp, we first need a node in the network by running our own node server of the DApp and then connecting the client to the node server. Nodes of a DApp provide an API only and let the developer community develop various clients using the API. Some DApp developers officially provide a client. Clients of DApps should be open source and should be downloaded for use; otherwise, the whole idea of decentralization will fail.
But this architecture of a client is cumbersome to set up, especially if the user is a non-developer; therefore, clients are usually hosted and/or nodes are hosted as a service to make the process of using a DApp easier.
What are distributed applications?
Distributed applications are those applications that are spread across multiple servers instead of just one. This is necessary when application data and traffic becomes huge and application downtime is not affordable. In distributed applications, data is replicated among various servers to achieve high availability of data. Centralized applications may or may not be distributed, but decentralized applications are always distributed. For example, Google, Facebook, Slack, Dropbox, and so on are distributed, whereas a simple portfolio site or a personal blog are not usually distributed until traffic is very high.
- 微信價值完全開發(fā)攻略
- 淘寶、天貓、微店實戰(zhàn)一本通:開店、裝修與推廣
- 電商基礎(chǔ):策略 運營 技術(shù)
- 轉(zhuǎn)化率:電商運營核心思維與實操案例
- 開微店,超簡單:裝修、經(jīng)營、推廣一本通
- 亞馬遜跨境電商運營寶典
- 全媒體營銷與運營(微課版)
- 電子商務(wù)數(shù)據(jù)分析與應(yīng)用
- 淘寶網(wǎng)開店、推廣與交易
- 微店這樣玩就賺了!開店運營+營銷推廣+成功案例(第2版)
- 一本書學(xué)會做房地產(chǎn)經(jīng)紀(jì)人
- 私域流量:從0到1搭建私域流量池的方法論
- 人人都能做生鮮
- 興趣電商:短視頻運營與流量變現(xiàn)
- 重生戰(zhàn)略:移動互聯(lián)網(wǎng)和大數(shù)據(jù)時代的轉(zhuǎn)型法則