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:
- Integrated Development Environment
1.1 Remix
1.2 EthFiddle - Local Test Nodes with RPC Interface
2.1 Ganache/TestRPC
2.2 Pythereum - Command Line Based Development Tools
3.1 Truffle
3.2 Embark
3.3 Dapp/Dapple - Code Analysers
4.1 Solium
4.2 Open-Zeppelin - 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 node package manager. Aside from that, open source text editors like Sublime Text and Atom have great package support for solidity syntax highlighting.
Ethereum Development Tools | Ethereum Developer Course | Edureka
TEST NODES WITH RPC INTERFACE
As you all know by now, everything on the 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.
CLI BASED DEVELOPMENT MANAGEMENT TOOLS
There are three major command line based Ethereum Development Tools, namely
- Truffle
- Embark
- Dapple
Let’s take a brief look into 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:
CODE ANALYSIS TOOLS
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 way, where it is contantly 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 analyse 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.
While there are many more tools out there to help you with Decentralised application development on Ethereum, these are the ones that have helped me the most. Even so, I highly encourage you, people, to check out the other Ethereum Development Tools available, that help our lives as developers.
If you wish to learn more about Ethereum Blockchain and build a career in Blockchain Technologies, then check out our Blockchain Course which comes with instructor-led live training and real-life project experience. This training will help you understand Blockchain in depth and help you achieve mastery over the subject.