Top Ethereum Development Tools To Create Ethereum Dapps

Aryya Paul
Edureka
Published in
8 min readJun 4, 2018
Ethereum Development Tools — Edureka

Ethereum opened the blockchain for numerous possibilities by implementing smart contract support on its system. This, in turn, opened up Ethereum to a vast majority of developers to create any sort of application that is possible to run on the blockchain by developing smart contracts in Ethereum specific languages like Solidity, Serpent, and LLL. Leaving languages aside, several Ethereum Development Tools have been developed over the years to make our lives as developers less cumbersome.

Various articles can be found, about the development of Ethereum and Smart contracts but there are very few articles that discuss the tools that make these all so seamless. So I decided to write up an article that gave insight to the various Ethereum Development Tools.

Ethereum Development Tools

For our own convenience, I’ve classified the tools into four major categories, namely:

  1. Integrated Development Environment
    1.1 Remix
    1.2 EthFiddle
  2. Local Test Nodes with RPC Interface
    2.1 Ganache/TestRPC
    2.2 Pythereum
  3. Command Line Based Development Tools
    3.1 Truffle
    3.2 Embark
    3.3 Dapp/Dapple
  4. Code Analysers
    4.1 Solium
    4.2 Open-Zeppelin
  5. Browsers
    5.1 Mist
    5.2 MetaMask

So let’s start off with our list of Ethereum Development Tools by discussing the IDEs.

Integrated Development Environment

The first task of a developer on his journey of building an application is writing the core logic, which is generally typed in on an Integrated Development Environment. The overall goal and main benefit of an IDE is improved developer productivity. IDEs boost productivity by reducing setup time, increasing the speed of development tasks, keeping developers up to date and standardizing the development process. When talking about solidity, the first IDE that comes to mind is Remix.

Remix

Previously known as Browser-Solidity, Remix is a web-based IDE specifically aimed at solidity and the Ethereum Development Environment.

Pros:

  • Compile the code with up to date compiler versions
  • Deploy and Run smart contract on customized environments like a JavaScript Virtual Machine or an Injected Web3.js provider.
  • Allows you to import code from GitHub and Swarm

Cons:

  • Tough to understand for beginners

EthFiddle

Aside from Remix, there’s another browser-based IDE that’s great, but for other purposes. This one’s called Ethfiddle and it’s great for presenting code. While remix provides the flexibility of testing our code on different networks and environments, ethfiddle is all about sharing your code on a presentation because of its easy embed features.

Pros:

  • Easy Embed and Share features

Cons:

  • Slow and not as feature rich as Remix

For locally compiling your solidity code, the SOLC compiler can be easily installed using the node package manager. Aside from that, open source text editors like Sublime Text and Atom have great package support for solidity syntax highlighting.

Local Test Nodes with RPC Interface

As you all know by now, everything on Blockchain is immutable by nature. Even updates to smart contracts cannot be registered the same address and must be deployed at a new address as a new instance. This also means that smart contracts cannot be tested on the main blockchain network as any changes would be impossible to make once deployed on the main net. Therefore test networks/nodes form an integral part of Etherum Development Tools as ethereum developers use local test nodes to test the interaction of the contracts.

Let’s discuss the most popular local test network

Ganache

First on our list is Ganache-CLI which is the most widely used local test node by Ethereum developers. Ganache is a personal blockchain for Ethereum development you can use to deploy contracts, develop your applications, and run tests. It is available as both a desktop application as well as a command-line tool (formerly known as the TestRPC). Ganache is available for Windows, Mac, and Linux.

Using ganache, you can –

Quickly view the status of all accounts, including their addresses, private keys, transactions, and balances.

See the log output of Ganache’s internal blockchain, including responses and other vital debugging information.

Configure advanced mining with a single click, setting block times to best suit your development needs.

Examine all blocks and transactions to gain insight about what’s happening under the hood.

Pythereum

Next, on the list, we have Pythereum, which is a local test node tool written in python. It is much more lightweight than ganache, but not as feature-rich.

With pythereum you can

Create a new test blockchain with a genesis block

Create new test-state with the genesis state passed in.

Send a transaction using the given private key to the given address with the given value and data.

Command Line Based Development Tools

There are three major command line based Ethereum Development Tools, namely

  1. Truffle
  2. Embark
  3. Dapple

Let’s take a brief look at each, one by one.

Truffle

So first on our list is Truffle, which also happens to be the most popular one out of three tools listed. Truffle is a development environment, testing framework and asset pipeline for Ethereum, aiming to make life as an Ethereum developer easier. The company ‘ConsenSYS’ is responsible for the development and maintenance of Truffle.

With Truffle, you get:

Built-in smart contract compilation, linking, deployment and binary management.

Automated contract testing with Mocha and Chai.

Configurable build pipeline with support for custom build processes.

Scriptable deployment & migrations framework.

Network management for deploying to many public & private networks.

Interactive console for direct contract communication.

Instant rebuilding of assets during development.

External script runner that executes scripts within a Truffle environment.

Embark

Next on our list of Ethereum Development Tools is Embark. Embark is a framework that allows you to easily develop and deploy Decentralized Applications (DApps) using serverless html5 applications. Embark currently integrates with EVM blockchains (Ethereum), Decentralized Storages (IPFS), and Decentralized communication platforms (Whisper and Orbit). Swarm is supported for deployment.

With Embark you can :

Automatically deploy contracts and make them available in your JS code. Embark watches for changes, and if you update a contract, Embark will automatically redeploy the contracts (if needed) and the dapp

Perform test-driven development with contracts using JavaScript

Keep track of deployed contracts; deploy only when truly needed

Easily Store & Retrieve Data on the DApp through EmbarkJS. Including uploading and retrieving files.

Deploy the full application to IPFS or Swarm.

Easily manage complex systems of interdependent contracts.

Dapp

Last on our list of command line based Ethereum Development Tools we have Dapple. Currently, Dapple has been deprecated in favor of a new tool called Dapp, which has been made by the same group of developers. Dapp is a simple command line tool for smart contract development. It supports these common use cases:

  • Package management
  • Source code building
  • Unit testing
  • Simple contract deployments

Code Analysers

Writing clean and secure code for a decentralized network is no easy task. There’s a lot to worry about from a storage and security point of view, especially when a majority of your code handles other people’s money. Any faulty rollbacks in the state could lead to major losses. To avoid such situations, special code analyzers have been developed to help developers write clean and secure code.

Solium and Open-Zeppelin are two such tools that come to mind when talking Ethereum Development Tools

Solium

Solium is a solidity code linter that allows you to write robust and stylish smart contracts. Solium works like an interpreter in the way, where it is constantly checking your code for style and security issues

With Solium you can:

  • Analyze your Solidity code for style & security issues and fixes them.
  • Standardize smart contract practices across your organization, integrate with your build system and deploy with confidence

Open-Zeppelin

Open-Zeppelin is a solidity framework for writing secure smart contracts. Using open-zeppelin developers can build distributed applications, protocols, and organizations using common contract security patterns, in solidity language. What’s great about open zeppelin is that it seamlessly integrates with Truffle making your life slightly more easier.

Browsers

The ethereum blockchain needs a browser which specially caters to its needs so that information regarding state, receipts and transactions can be viewed. Let’s discuss the most popular browsers that are used by developers to analyze the interaction of their app on the blockchain

Mist

Mist Browser (formerly Ethereum Dapp Browser) is the end-user interface for Ethereum. It’s the tool of choice for browsing and using Dapps and is specifically designed for non-technical users.

Using mist you can:

Send Transactions

Receive transactions

Store Ether

Create multi-signature wallets

Deploy Smart Contracts

View the State of the Blockchain

MetaMask

While metamask isn’t really a ‘browser’, it turns Google Chrome into an Ethereum browser that allows it to fetch data from the blockchain and allows users to securely send or receive signed transactions. The extension injects the Ethereum web3 API into every website’s javascript context so that dapps can read directly from the blockchain. Metamask is easily installable on chrome, opera, and firefox as a browser extension.

If you wish to check out more articles on the market’s most trending technologies like Artificial Intelligence, DevOps, Ethical Hacking, then you can refer to Edureka’s official site.

Do look out for other articles in this series which will explain the various other aspects of Blockchain.

1. Blockchain Tutorial

2. Ethereum Tutorial

3. Ethereum Private Networks

4. What are Smart Contracts?

5. Solidity Tutorial

6. Truffle Ethereum Tutorial

7. Hyperledger Fabric

8. Hyperledge vs Ethereum

Originally published at www.edureka.co on June 4, 2018.

--

--