Ever since its release, Ethereum Blockchain has become the talk of the town due to its two USPs, Smart Contracts and Decentralized Applications (DApps). The blockchain network allows businesses and developers to create any number of smart contracts and DApps they want. DApps are decentralized applications that run on smart contracts.
To create these DApps or smart contracts, developers must first write scripts in Solidity Programming Language (used for smart contracts’ coding) and then call various functions to deploy them. An alternative way to run smart contracts is to write bash scripts that would compile and deploy them. Ethereum Truffle suite was introduced to make this process seamless. Apart from the Truffle framework, the suite has several components and features that make it a natural fit for your DApps development needs.
Components of Truffle Suite
The Truffle framework suite provides developers with everything that they would want to build an Ethereum blockchain DApp. It allows them to create contracts, compile them, deploy them, test them, and create front-end UI for DApps, making it one of the best frameworks for developing DApps. Truffle suite has three significant components, which are:
- Truffle Framework: The actual development framework that brings everything right from creating smart contracts to testing and deploying them to a single framework.
- Ganache: It is a simulator that allows developing and testing Graphical User Interface (GUI) for DApps.
- Drizzle: It is a front-end library that simplifies the process of developing web applications for DApps.
Must Read: Tools For Ethereum Development
Features of Truffle Suite
Truffle suite is equipped with various features that make it a boon for Ethereum DApps developers and one of the most popular IDEs. Here’s what all you get within the framework:
- A one-stop solution with built-in support for creating, compiling, deploying smart contracts
- Allows seamless smart contracts linking with web applications
- Offers automated contract testing
- Supports console and web apps with its configurable pipeline
- Built-in support for network and package management
- Enables direct communication with smart contracts
Prerequisites for developing DApps on Ethereum Truffle Framework
Before beginning with developing Ethereum DApps, there are a few requisites that we need to take care of. Firstly, we will need to set up the NPM (Node Package Manager) on our computer.
NPM will help us install the Truffle framework. Secondly, we will need to download and install the Ganache simulator from its official site, which will give us the GUI development
environment. Lastly, we will need to add a MetaMask extension for our browser. MetaMask is a plugin that allows us to access Ethereum DApps through a browser without becoming an actual blockchain node.
Installing the Truffle Framework
Now that we know about all the prerequisites, it’s time to install the Truffle framework and develop our DApp. To install Truffle, insert the following command in the NPM terminal.
$ npm install -g truffle
Also Read: What is Truffle Suite
Developing Ethereum DApp using Truffle Framework
The next step is to create a directory for our project. Create a directory and then access it by inserting the following commands:
- Create directory: $ mkdir directory_name
- Access directory: $ cd directory_name
Once we have installed the Truffle framework, there are two different ways to start a project.
The first way is to use the command:
$ truffle init
This command will start a bare project. However, there is another way to create a project by unboxing Truffle boxes. These projects have all the necessary configurations and some default code to launch the DApp projects quickly. To initiate such a project, use the following command:
$ truffle unbox metacoin
The next step is to install the Ganache simulator that we downloaded. Ganache simulator runs on localhost by default and provides some default accounts with pre-funded Ethers (meant for testing and don’t have real-world value). These Ethers will help us perform test transactions for our DApp. To install Ganache and then test it, use the following two commands:
Install: $ npm install -g ganache-cli
Test run: $ npm ganache-cli
This test run code will output the default accounts and their private key credentials. We can also use MetaMask mnemonic phrases for testing. All we need to do is add the mnemonic phrase with -m. The command is:
$ npm ganache-cli -m “mnemonic phrase”
Now we need to compile and migrate the smart contracts from our directory to the network. The following commands do this:
$ truffle compile
$ truffle migrate
Once these commands are executed, our app will be up and running. Now we can create multiple accounts from the MetaMask plugin and initiate transactions to test our DApp.
Check out: Best Ethereum Wallets
That’s how you can develop and test Ethereum DApps using the Truffle framework. DApps are just one of the many utilities of the Ethereum Network. Ethereum has a lot more to offer, thanks to the decentralized blockchain technology. upGrad can help you learn everything about blockchain. If you want to develop smart contracts & DApps and pursue a career in blockchain, checkout IIIT-B & upGrad’s PG Certification in Blockchain Technology.