dAapp: made up of frontend & backend(smart contract)
A decentralized application is a software application that connects smart contracts with UI. They’re backend codes deployed to the blockchain networks. Frontend hosted in decentralized storage like Filecoin, IPFS
characteristics of dApps
- decentralized
- deterministic
- Turing-complete
- isolated
dApp backend-smart contract communicate with Ethereum blockchain & can't be changed after deploy
Why dApp Development
Benefits of Dapps development
- Zero-downtime: once deployed on blockchain the network as a whole is able to serve clients looking to interact with the contract
- privacy: you don’t need to provide real-world identity to deploy/interact with dApp
- resistance to censorship: no single entity on the network can block users from submitting transactions
- complete data integrity: Data stored on the blockchain is immutable & indisputable thanks to cryptographic primitives
- trustless computation/verifiable behavior: smart contracts can be analyzed & are guaranteed to execute in predictable ways without the need to trust a central authority
Drawbacks of dApps
- maintenance
- performance overhead: scalability
- network congestion: nodes are interrelated if one has an issue it will affect the other plus difficult computations
- user-experience: low adoption of web3 due to bad user experience...you can’t interact with a smart contract without frontend