#100DaysOfWeb3: Decentralized Application Development

#100DaysOfWeb3: Decentralized Application Development

A decentralized application(dApp) 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 among others.

the characteristics of dApps: decentralized, deterministic, turning complete, and isolated. The dApp backend communicates with the Ethereum blockchain and can't be changed.

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
  • centralization: networks are not fully decentralized

Types of Decentralized Applications

Decentralized Finance(DeFi)

Development Environment Setup Options

Ethereum IDEs

writing a smart contract

  • solidity documentation
  • declare the license (identify the owner/standard) - use any license i.e MIT. without it, it will plug an error...have a license
  • declare solidity version of code: pragma ^0.8.11 (use the latest version). Highly dependant on contracts you’re using some could have been declared absolute for older versions
  • state contract: the contract is like a class in other program languages. declare the name of contract: voting system have a ballot.
  • struct is like a user-defined variable(state & local variable - global). Struct is like a custom variable that has a data type of an address. uint. Within a struct, we have other data types.
  • constructor input value before deployment: top priority functions should be inside a constructor's

Thank you for reading through my article on this series. I will be dropping more articles linked to my 100DaysofWeb3 journey. You can leave a comment or suggestion. We can also connect more on Twitter or LinkedIn

Did you find this article valuable?

Support Sharon Jebitok by becoming a sponsor. Any amount is appreciated!