DApp Development

From Grundy
Jump to navigation Jump to search

Decentralized applications or DApps are a piece of software that communicates with the blockchain, which manages the state of all network actors. The interface of the decentralized applications does not look any different than any website or mobile app today. The smart contract represents the core logic of a decentralized application. Smart contracts are integral building blocks of blockchains, that process information from external sensors or events and help the blockchain manage the state of all network actors.

DApps are not something native to Ethereum only. Several blockchains like EOS, Tron, etc. have a multitude of interesting DApps built on top of them. Here is an article for you to know more about different DApps on all these platforms.

However, this article focuses on DApp Development on Etheruem using Solidity (for smart contracts), Web3 (communicate between the interface and the smart contract on the Ethereum) & some front-end framework(s) (To build the interface).

Prerequisites

  • Some familiarity with writing & deploying smart contracts using Solidity is needed. If you are new to Solidity, check out our Ethereum Smart Contracts Tutorial. You can also learn Solidity from this amazing tutorial.
  • Familiarity with some frontend-development framework. Though not a hard prerequisite, it is better to have some working knowledge of frontend development. For resources, you can have a look at our wiki articles on React & Angular.

Web3 - The Start of a Decentralized Internet

Web 3.0 or simply Web3 is an inclusive set of protocols to provide building blocks for application makers. These building blocks take the place of traditional web technologies, but present a whole new way of creating applications.

To develop DApps, we must use some form of Web3 to interact with our smart contracts. In Web DApps, Web3 can be injected into the browser by tools like Metamask (a crypto wallet) or Mist browser. By injecting Web3, it means that they act as a provider for the web3 object needed to interact with Ethereum.

web3.js: Web3 for JavaScript Developers

web3.js is a collection of libraries which allow you to interact with a local or remote ethereum node, using a HTTP or IPC connection. The web3 JavaScript library interacts with the Ethereum blockchain. It can retrieve user accounts, send transactions, interact with smart contracts, and more.

web3.py: Web3 for Python Developers

Web3.py, as mentioned in the official GitHub repository, is a python implementation of the web3.js API.For Python developer, Web3.py is the go-to library for interacting with the Ethereum Blockchain.

Ethereum DApp Development Tutorials

Following is a curated list of tutorials that will help you develop a DApp from scratch using Solidity & Web3, while integrating it seamlessly with your frontend interface:

  • Etherum Pet Shop - Your First DApp: This is an official DApp development tutorial by Truffle, that will take you through the process of building your first dapp - an adoption tracking system for a pet shop. The frontend interface has been created using simple HTML/CSS/JavaScript. This tutorial will leverage the Truffle Pet Shop box, which has all the boilerplate code required for building this DApp.
  • Build a Full Stack Decentralized Application Step-By-Step: In this tutorial, we will create a very simple DApp to conduct an election between two candidates. This involves writing the smart contract (in Solidity), deploying it to the Ethereum blockchain, and developing a client-side application that allows accounts to cast votes (by modifying the HTML/CSS/JavaScript files that come with Truffle Pet Shop box boilerplate).
  • Create your own cryptocurrency on Ethereum: This tutorial focuses on how to code your own cryptocurrency on the Ethereum blockchain and sell it. It intends to first explain what are ERC20 Tokens on Ethereum & ICOs (Initial Coin Offerings), followed by a step-by-step guide to create your own ERC-20 token & build an ICO website deployed to the web. For interested readers, here is an article that talks about the specifics of ERC20 Token Standard.
  • How to Code a Crypto Collectible: This video tutorial introduces the concept of Non-Fungible Tokens (NFTs), which can be created on Ethereum using the ERC721 Token Standard. Here, we create our very own customized crypto-collectible smart contract & build an interface to mint & display such NFTs. For interested readers, here is an article that talks about the specifics of the ERC721 Token Standard.
  • Simple DApp with Ethereum & IPFS: This tutorial introduces the concept of decentralized file storage using something known as the Interplanetary File System (IPFS). Here is an interesting post that talks about IPFS, its components, need & utility. In this tutorial, we will create a DApp to upload a file to IPFS & then store its IPFS hash on the Ethereum blockchain using an interface created through React.