The best tools for Ethereum developers

By February 1, 2020 DApps
Click here to view original web page at toshitimes.com
best tools ethereum developers

If you’re curious about the best tools available for Ethereum developers, you’ve come to the right place. To learn blockchain development and be certified I recommend visiting Ivan on Tech Academy.

2020 is a great time to get a full time crypto position since blockchain is currently #1 ranked skill by LinkedIn.

On my first piece I’ve discussed how Ethereum 2.0 will look like. I’ve taken a deep dive into how Ethereum 1.0 was created, its stack and how ETH 2.0 is raising the stakes (pun intended).

According to the Ethereum 2.0 roadmap, we should see the Beacon chain being deployed soon. Expect a brand new PoS consensus algorithm, as well as sharding and stateless executions.

Still, in order to deploy quality code, developers need quality tools.

Have you been wondering what tools do Ethereum developers use, in order to create and deploy smart contracts?

In today’s piece I aim at analysing what are the best tools available for Ethereum developers and how can you leverage them!

Ethereum development 101

As discussed on this guide, in order to become a quality Ethereum developer one must initially focus on learning functional programming languages. Preferably some experience in JavaScript, C++ or Python would assist you the most.

Finally, in order to better understand incentives, features tradeoffs, game design or simple economic theory, it’s key developers learn about what public blockchain technology is, what is not and how to leverage a decentralised and peer-to-peer system.

If you are interested in learning how Ethereum works under the hood or how to program Ethereum dapps and get in-depth professional knowledge I personally recommend joining Ivan on Tech Academy.

Now, to the topic at hand: what tools do most Ethereum developers rely on?

Best Ethereum development tools

A great place to start is by checking what key players developing Ethereum are cooking; above all, I recommend reading through this GitHub page, courtesy of Consensys. It delivers an essential and comprehensive list of tools widely used by a variety of developers, from back-end to front-end.

As such, the most basic tools any Ethereum developer needs to get acquainted with are:

  • Solidity – The most popular smart contract compiler.
  • Truffle – Most popular smart contract development, testing, and deployment framework.
  • Metamask – Chrome extension wallet to interact with Dapps.
  • Truffle boxes – Packaged components for the Ethereum ecosystem.
  • OpenZeppelin Starter Kits – An all-in-one starter box for developers to jumpstart their smart contract backed applications.
  • EthHub.io – Comprehensive crowdsourced overview of Ethereum.
  • Cobra – A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine (EVM).
  • Fortmatic – A simple to use SDK to build web3 dApps without extensions or downloads.
  • Portis – A non-custodial wallet with an SDK that enables easy interaction with DApps without installing anything.
  • Kauri.io – A community based knowledge platform for web3 and emerging technologies.
  • dfuse – Slick blockchain APIs to build world-class applications.

Additionally, I’ve categorized each tool by functionality so that you can pick which interest you the most. Depending on what stage of learning or development you are, each category might suit you best.

Hence, I recommend junior devs to check each individual resource with much attention to detail since a great deal of tools is explained below!

Ethereum tools by category

Below you can find a comprehensive list of most tools you need to properly develop smart contracts. From programing languages and frameworks, to IDEs, testing tools and APIs, there’s a great deal of tools to help you in your development endeavours.

Smart Contract Languages/Compilers

A smart contract is a self-executing contract. The terms of the agreement between the buyer and the seller are directly written into lines of code. Smart contracts allow for trusted transactions and agreements to be carried out among anonymous parties. Therefore, there is no need for a central entity, external enforcement mechanism, or legal system. Public-blockchain smart contracts make transactions transparent, irreversible, and traceable.

Implementing smart contracts across various blockchains is made possible through high-level object-oriented programming languages.

Functional programming languages are available for blockchain projects such as Tezos or Cardano, not in the scope of this article.

The most widely used OOP languages are:

  • Solidity – The main Ethereum smart contracting compiler.
  • Bamboo – A morphing smart contract language.
  • Vyper – New experimental pythonic programming language.
  • Flint – New language under development with security features including asset types, state transition, and safe integers.

Frameworks

A software framework provides a standard way to build and deploy applications. It is a universal, reusable software environment that provides particular functionality as part of a larger software platform.

Frameworks facilitate development of software applications, products and solutions.

Some of the key frameworks available for Ethereum are:

  • Truffle – Most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and Drizzle.
  • Embark – Framework for DApp development
  • Waffle – Framework for advanced smart contract development and testing.
  • Dapp – Framework for DApp development, successor to DApple.
  • Etherlime – ethers.js based framework for Dapp deployment
  • Parasol – Agile smart contract development environment with testing, INFURA deployment, automatic contract documentation.
  • 0xcert – JavaScript framework for building decentralized applications.
  • OpenZeppelin SDK – develop, compile, upgrade, deploy and interact with smart contracts.
  • sbt-ethereum – A tab-completey, text-based console for smart-contract interaction and development, including wallet and ABI management, ENS support, and advanced Scala integration.
  • Brownie – Brownie is a Python framework for deploying, testing and interacting with Ethereum smart contracts.
  • Cobra – A fast, flexible and simple development environment framework for Ethereum smart contract, testing and deployment on Ethereum virtual machine (EVM).

IDEs

An IDE is a software application that provides comprehensive facilities to developers. An IDE normally consists of a source code editor, build automation tools and a debugger.

The most adopted IDEs by ETH devs are:

  • Remix – Web IDE with built in static analysis, test blockchain VM.
  • Ethereum Studio – Web IDE. Built in browser blockchain VM, Metamask integration, transaction logger and live code your WebApp.
  • Atom – Text editor. Compatible with Solidity libraries.
  • Vim solidity – Vim syntax file for solidity
  • Visual Studio Code – Visual Studio Code extension that adds support for Solidity
  • Intellij Solidity Plugin – Open-source plug-in with syntax highlighting, formatting and code completion.
  • YAKINDU Solidity Tools – Eclipse based IDE. Features context sensitive code completion and help, code navigation, syntax coloring, build in compiler, quick fixes and templates.
  • Eth Fiddle – IDE developed by The Loom Network that allows you to write, compile and debug your smart contract. Easy to share and find code snippets.

For Bootstrapping

A bootstrap is a business launched by an entrepreneur with little or no outside cash. In the case of CS, it usually means creating a MVP, basic program or interactive mock.

Ethereum developers generally use:

  • Truffle boxes – Packaged components for the Ethereum ecosystem.
  • Besu Private Network – Run a private network of Besu nodes in a Docker container.
  • Testchains – Pre-configured .NET devchains for fast response (PoA).
  • Blazor/Blockchain Explorer – Wasm blockchain explorer (functional sample).
  • Local Raiden – Run a local Raiden network in docker containers for demo and testing purposes.
  • Private networks deployment scripts – Out-of-the-box deployment scripts for private PoA networks.
  • Parity Demo-PoA Tutorial – Step-by-Step tutorial for building a PoA test chain with 2 nodes with Parity authority round consensus.
  • Local Ethereum Network – Out-of-the-box deployment scripts for private PoW networks.
  • Kaleido – Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing.
  • Cheshire – A local sandbox implementation of the CryptoKitties API and smart contracts, available as a Truffle Box.
  • aragonCLI – aragonCLI is used to create and develop Aragon apps and organizations.
  • ColonyJS – JavaScript client that provides an API for interacting with the Colony Network smart contracts.
  • ArcJS – Library that facilitates javascript application access to the DAOstack Arc ethereum smart contracts.
  • Arkane Connect – JavaScript client that provides an API for interacting with Arkane Network, a wallet provider for building user-friendly dapps.
  • Blocknative – Assist.js is an embeddable widget that improves Dapp usability.

Ethereum APIs (frontend)

  • Web3.js – Javascript Web3.
  • Nethereum – Cross-platform Ethereum development framework.
  • dfuse – A TypeScript library to use dfuse Ethereum API.
  • Drizzle – Redux library to connect a frontend to a blockchain.
  • Tasit SDK – A JavaScript SDK for making native mobile Ethereum dapps using React Native.
  • Subproviders – Several useful subproviders to use in conjunction with Web3-provider-engine..
  • web3-react – React framework for building single-page Ethereum dApps.
  • ethvtx – Ethereum-ready & framework-agnostic redux store configuration.
  • ChainAbstractionLayer – Communicate with different blockchains (including Ethereum) using a single interface.
  • Delphereum – A Delphi interface to the Ethereum blockchain that allows for development of native dApps for Windows, macOS, iOS, and Android.

Security Tools

  • MythX – Security verification platform and tools ecosystem for Ethereum developers.
  • Mythril – Open-source EVM bytecode security analysis tool.
  • Oyente – Alternative static smart contract security analysis.
  • Securify – Security scanner for Ethereum smart contracts.
  • SmartCheck – Static smart contract security analyzer.
  • Ethersplay – EVM disassembler.
  • Evmdis – Alternative EVM disassembler.
  • Hydra – Framework for cryptoeconomic contract security, decentralised security bounties.
  • Solgraph – Visualise Solidity control flow for smart contract security analysis.
  • Manticore – Symbolic execution tool on Smart Contracts and Binaries.
  • Slither – A Solidity static analysis framework.
  • Adelaide – The SECBIT static analysis extension to Solidity compiler.
  • solc-verify – A modular verifier for Solidity smart contracts.
  • Solidity security blog – Comprehensive list of known attack vectors and common anti-patterns.
  • Awesome Buggy ERC20 Tokens – A Collection of Vulnerabilities in ERC20 Smart Contracts With Tokens Affected.
  • Free Smart Contract Security Audit – Free smart contract security audits from Callisto Network.
  • Piet – A visual Solidity architecture analyzer.

Monitoring

  • Alethio – An advanced Ethereum analytics platform.
  • amberdata.io – Provides live monitoring, insights and anomaly detection, token metrics, smart contract audits, graph visualization and blockchain search.
  • Neufund – Smart Contract Watch – A tool to monitor a number of smart contracts and transactions
  • Scout – A live data feed of the activities and event logs of your smart contracts on Ethereum.
  • Tenderly – A platform that gives users reliable smart contract monitoring and alerting.
  • Chainlyt – Smart Contract explorer with decoded transactions.
  • BlockScout – A tool for inspecting and analyzing EVM based blockchains.
  • Terminal – A control panel for monitoring dapps.

External services

External services are usually infrastructure related, like data storage or analytics. Others comprehend smart contract deployment services assistance and assurance.

Some of the most widely used by Ethereum developers are:

  • Buidler – Extensible developer tool that helps smart contract developers increase productivity by reliably bringing together the tools they want.
  • Atra Blockchain Services – Atra provides web services to help you build, deploy, and maintain decentralized applications on the Ethereum blockchain.
  • Azure Blockchain Dev Kit for Ethereum for VSCode – VSCode extension that allows for creating smart contracts and deploying them inside of Visual Studio Code.
  • Ethereum BigQuery – a public dataset for smart contract analytics.

How to get test ETH?

To get started with ETH development, one of the first steps is to get some test ETH; in order to do that, request test ETH from any of the Ether faucets available:

Deploying your test environment

Last but not least, it’s quite advisable to use one of the above mentioned testnets, such as Rinkeby, Kovan or Ropsten, before deploying smart contracts into the main ETH chain.

Some of the Ethereum test blockchain networks available are:

  • ethnode – Run an Ethereum node (Geth or Parity) for development, as easy as npm i -g ethnode && ethnode.
  • Ganache – App for test Ethereum blockchain with visual UI and logs.
  • Kaleido – Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing.
  • Besu Private Network – Run a private network of Besu nodes in a Docker container.
  • Cliquebait – Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network.
  • Local Raiden – Run a local Raiden network in docker containers for demo and testing purposes.
  • Private networks deployment scripts – Out-of-the-box deployment scripts for private PoA networks.
  • Ethereum on Azure – Deployment and governance of consortium Ethereum PoA networks.
  • Ethereum on Google Cloud – Build Ethereum network based on Proof of Work.
  • Infura – Ethereum API access to Ethereum networks (Mainnet, Ropsten, Rinkeby, Goerli, Kovan).
  • CloudFlare Distributed Web Gateway – Provides access to the Ethereum network through Cloudflare, instead of running a node.
  • Chainstack – Shared and dedicated Ethereum nodes as a service (Mainnet, Ropsten).

In conclusion, I hope this piece brought some light on the best tools available for Ethereum.

Best of luck in all your future Ethereum development endeavours!

A list of important resources is provided below:

This article is not financial advisement. Changes may happen that the author is unaware of. Always check the resources provided!

Leave a Reply