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.

Rinkeby faucet

Kovan faucet

Ropsten faucet

Goerli faucet

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

--

--

Digital Transformation & Industry 4.0
Digital Transformation — Data Convergence

One stop shop information on IoT, AI,Blockchain, ARVR and Quantum the most in demand emerging technologies in 2020