Chapter 4: Data Convergence — Blockchain — Blockchain Developer Tools
Tools for blockchain developers
In this article we will cover the tools available for Ethereum Blockchain.
A guide to the available tools, components, patterns, and platforms for developing applications on Ethereum.
Will update this articles with other tools required for hyperledger .
Tools for blockchain developers — Ethereum
Blockchain as a service
Smart Contracts
Smart contract launguages
Smart contract frameworks and tools
Smart contract libraries
Smart contract monitoring
Testing tools
Security tools
Ethereum Clients
IDE’s/Editors
Interfaces
Front-end interfaces
Back-end interfaces
Ethereum ABI (Application Binary Interface) tools
Messaging
Storage
Testnets
Public testnets
TESTNET FAUCETS
Local testnests
Block Explorers
Enterprise Tools
Prebuilt UI Components
Developers need to arm themselves with special tools when working on blockchain technology. Let us explore some of these tools that are useful for developers.
Blockchain technology envisions a future of making every centralised process, activity and organisation fully autonomous. It is immutable, encrypted, decentralised and has the potential to eliminate intermediaries, authorities and any third-party intervention in all applications. No wonder blockchain developers are considered as real unicorns in the industry right now as a lot of companies, especially startups, are looking for their expertise. However, only a handful of them work on this technology today. To work with blockchain technology you do not need to build a blockchain from scratch. You can use the already existing networks like Bitcoin, Ethereum
or Hyperledger. While Bitcoin and Ethereum are both decentralised, open source and public, Hyperledger is private but open source. Both Bitcoin and Ethereum are different and you must choose between them based on your application. Ethereum is suitable for building decentralised applications (DApps) while Bitcoin is not really a good choice for DApps as it was designed for peer-to-peer transactions.
Blockchain as a service
The main goal of Blockchain as a Service (BaaS) is to offer the backend capabilities needed by blockchain solutions. The BaaS offered by different companies supports several chains including MultiChain, Eris, Storj and
Augur. One of the advantages of BaaS is that users can leverage the lessons learned by the service provider to make their system more secure. The key players offering BaaS are Microsoft, IBM, HP and Oracle.
NOTE: There are also some other tools which are not mentioned here. It is your job to find them. Main intention of this blog is to give you information about what type of tools are there and some examples of them.
Smart Contracts
Smart contract launguages
If you’re developing on Ethereum, you’re going to need to know how to write smart contracts. Luckily there are not too many different languages that you need to know. Solidity the main smart contract language is easier to learn if you already possess a good understanding of Javascript.
Solidity — Ethereum smart contracting language
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,
Smart contract frameworks and tools
Truffle — Most popular smart contract development, testing, and deployment framework. The Truffle suite includes Truffle, Ganache, and Drizzle. Deep dive on Truffle here
Embark — Framework for DApp development
Waffle — Framework for advanced smart contract development and testing, small, flexible, fast (based on ethers.js)
Dapp — Framework for DApp development, the successor to DApple
Etherlime — ethers.js based framework for Dapp deployment.
Smart contract libraries
You’ve probably used programming libraries before, and these are no different. A smart contract library is the reusable piece of code for a smart contract that is deployed once and shared many times. The most used smart contract libraries are Zeppelin, cryptofin-solidity and Modular libraries.
Smart contract monitoring
Whether you’re building a personal application or an application for the masses you’ll need to be able to monitor your smart contract. Use the following monitoring tools inspect and analyze how your smart contracts are performing or get notifications to adjust gas fees or when certain events occur. Some of these tools even provide visualizations so you can see exactly how your smart contract is functioning.
Alethio — Actively monitor any external account, dapp or smart contract.
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.
Testing tools
Test our your solidity code and smart contracts using the following tools! Testing tools can execute tests automatically while freeing up developer time and system resources.
Truffle Teams — Zero-Config continuous integration for truffle projects.
Solidity code coverage — Solidity code coverage tool
Solidity coverage — Alternative code coverage for Solidity smart-contracts
Solidity function profiler — Solidity contract function profiler
Sol-profiler — Alternative and updated Solidity smart contract profiler
Espresso — Speedy, parallelized, hot-reloading solidity test framework
Eth tester — Tool suite for testing Ethereum applications
Cliquebait — Simplifies integration and accepting testing of smart contract applications with docker instances that closely resembles a real blockchain network.
Security tools
With above tools you biuld your dapp or smart contract. But how do you know it was set up correctly and is safe from hackers? The security tools below will help ensure that your code is safe and follows all Ethereum development best practices.
MythX — Security verification platform and tools ecosystem for Ethereum developers
Mythril Classic — 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.
Ethereum Clients
An Ethereum client refers to any node that is able to parse and verify the blockchain, its smart contracts, and everything in between. An Ethereum client also provides interfaces to create transactions and mine blocks which is the key for any Ethereum transaction. Below are the most popular Ethereum clients.
Infura — A managed service providing Ethereum client standards-compliantt APIs
Hyperledger Besu — Java client by PegaSys
Geth — Go client
Parity — Rust client
Aleth — C++ client
Nethermind — .NET Core client
Pyethapp — Python client using pyethereum
Trinity — Python client using py-evm
Ethereumjs — JS client using ethereumjs-vm
IDE’s/Editors
IDE stands for Integrated Development Environment. IDEs and Editors are what you need to write and test software. They are software suites that consolidate basic tools that are required to start writing on Ethereum. Below are the most popular IDEs and Editors.
Remix — Web IDE with built-in static analysis, test blockchain VM.
Superblocks Lab — Web IDE. Built in browser blockchain VM, Metamask integration (one-click deployments to Testnet/Mainnet), transaction logger and live code your WebApp among many other features.
Atom — Atom editor with Atom Solidity Linter, Etheratom, autocomplete–solidity, and language–solidity packages
Pragma — Very simple web IDE for solidity, and auto-generated interfaces for smart contracts.
Vim solidity — Vim syntax file for solidity
Visual Studio Code — Visual Studio Code extension that adds support for Solidity
Interfaces
Front-end interfaces
If you want to start developing dapps, you’ll need front-end development skills. Below are the most popular front-end interfaces that will help you turn your dapp from an idea to a live Ethereum mainnet application.
Web3.js — Javascript Web3
Eth.js — Javascript Web3 alternative
Ethers.js — Javascript Web3 alternative, useful utilities and wallet features
light.js A high–level reactive JS library optimized for light clients.
Web3Wrapper — Typescript Web3 alternative
Back-end interfaces
If you want to graduate from just building dapps, you’ll need to start learning and using the backend interfaces listed below. If you’re interested in doing backend/protocol work on Ethereum, you should have significant experience with Go, Rust, Java, .NET, Ruby, or Python. Explore some of the most frequently used backend interfaces below.
Web3.py — Python Web3
Web3.php — PHP Web3
Ethereum–php — PHP Web3
Web3j — Java Web3
Ethereum ABI (Application Binary Interface) tools
An ABI is an interface between two program modules, one of which is often at the level of machine code. The ABI interface is the primary method for encoding/decoding data into/out of the machine code. For instance, you’ll use an ABI to encode Solidity contract calls for the EVM (Ethereum Virtual Machine) and, vice versa, how to read the data out of transactions.
ABI decoder — library for decoding data params and events from Ethereum transactions
ABI-gen — Generate Typescript contract wrappers from contract ABI’s.
Ethereum ABI UI — Auto-generate UI form field definitions and associated validators from an Ethereum contract ABI
Messaging
Communication protocols for dapps and nodes to communicate with each other. Healthy communication is important in life and in your dapp!
Whisper — Communication protocol for DApps to communicate with each other, a native base layer service of the Ethereum web3 stack
DEVp2p Wire Protocol — Peer-to-peer communications between nodes running Ethereum/Whisper
Pydevp2p — Python implementation of the RLPx network layer
Storage
Ethereum allows you to save variables or data in permanent storage. The storage platforms below are where all of the smart contract data lives.
IPFS is the most commonly used storage system on Ethereum. Explore the platforms below to learn more about how storage on Ethereum works.
IPFS — decentralized storage and file referencing
OrbitDB — decentralized database on top of IPFS
Swarm — Distributed storage platform and content distribution service, a native base layer service of the Ethereum web3 stack
Testnets
Public testnets
Public Testnets on Ethereum offer a way for developers to test what they build without putting their creations on the main Ethereum network. Developers are able to obtain as much ETH as you want on testnets because testnet ETH doesn’t carry any monetary value. Below are the most used testnets to start testing on and the links for where you can request testnet ETH.
Ropsten — A proof-of-work blockchain that most closely resembles Ethereum and allows you to easily mine faux–Ether.
Görli — Proof-of-authority cross-client testnet, synching Parity Ethereum, Geth, Nethermind, Pantheon, and EthereumJS. This testnet is a community–based project, completely open-source.
Kovan — A proof-of-authority blockchain started by the Parity team. Test ether must be requested.
Rinkeby — A proof-of-authority blockchain started by the Geth team. Test ether must be requested.
TESTNET FAUCETS
Use these faucets to obtain testnet ether.
Local testnests
Similar to Public Testnets, Local Testnets are a place for you to test your software without pushing it public. Unlike Public Testnets, the Local Testnet software will only run on your computer/node and other users won’t be able to see it or interact with it.
Local Raiden — Run a local Raiden network in docker containers for demo and testing purposes
Ganache — App for test Ethereum blockchain with visual UI and logs Ganache CLI — Fast Ethereum RPC client for testing and development. The command-line version of Ganache, your personal blockchain for Ethereum development.
Block Explorers
A block explorer is an online blockchain browser that displays the contents of Ethereum blocks, gas costs, transactions, account balances, and more!
EthStats — Ethereum block explorer and analytics by Alethio
Etherscan — Ethereum block explorer
Ethplorer — Ethereum block explorer
Enterprise Tools
If you want to get a job as a developer or bring blockchain implementations to your company, you may need to become proficient with some enterprise blockchains and tools. Below are some great enterprise tools that make setting up a blockchain quick and easy.
Ethereum on Google Cloud — Build Ethereum network based on Proof of Work
Ethereum on Azure — Deployment, and governance of consortium Ethereum PoA networks
Kaleido — Use Kaleido for spinning up a consortium blockchain network. Great for PoCs and testing
Prebuilt UI Components
Utilize some of these prebuilt UI components to expedite your development time and create applications that are easy and fun to use. These components will save you time and make your dapp better!
aragonUI — A React library including Dapp components
components.bounties.network — A React library including Dapp components
lorikeet.design — A React library including Dapp components
ui.decentraland.org — A React library including Dapp components
dapparatus — Reusable React Dapp components