Ethereum Blockchain Development Tools and Ubuntu

Previously, I have discussed how one can run an Ethereum node over the container using Docker on Windows 10. In this one, I will discuss extensively all about the Ethereum blockchain development tools.

We will install everything manually, and I have chosen this time Ubuntu as an operating system. Ubuntu is more flexible, secure and more comfortable to use. It also provides compatibility for most of the Ethereum’s development tools.

If you are a Windows person then do not worry, you can download the latest image from the Ubuntu and use that inside VMWare or Virtual Box.

In this article, I would explain all the required tools to run an Ethereum node. These tools are essential to build any Ethereum based blockchain private network or to connect with an existing public blockchain.

So let me explain these tools:

1) Geth:

Geth is an official Ethereum client developed by Ethereum’s developers.
– This tool will allow you to connect with the Main Ethereum Blockchain Network or official test networks like Rinkeby or Ropsten.
– You can also use this client to create your private network.
– When you connect to the Main network or its official test network, then you have to wait for several hours to download all the previous block files.
– It is a command line tool, and you can download this from the GitHub.
– To install the Geth and ethereum on the Ubuntu, you must follow the commands as described inside this link: https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu

Following commands will install the Ethereum latest version with Geth and other binaries.

sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum

First, we install the “software properties common” which helps in managing the software repositories.
– The second command allows us to download the “personal package repository.”
– Then we update all the repositories within the system.
– The last command installs the Ethereum.
– You can also manually compile the Geth and if you have C or Go compiler. But this is an extra option for those who would like to use their hands in depth.

2) Puppeth:

– When you start any new private network, then you rely on the configuration of your first block.
– The first block is called genesis block that would contain information like network id, coinbase account, predefined accounts with ETH.
– Then consensus type should be selected like proof of work or proof of stake. In most of my examples, I will use PoW.
– It is a command line tool, and it gets installed by default when you install Ethereum official tools like Geth.
– Puppeth is an operational tool which is used to create a genesis block file in JSON format. However, if you are not interested in using this tool, then you can also create a manual genesis.json file with the required configuration.

3) Ganache:

– Ganache is an emulator which can help you to emulate a fake blockchain based on ethereum network.
– It creates all blocks in the memory, and due to this nature, it is the fastest way to test DAPP, contracts or transactions.
– Since testing on the Rinkeby or Ropsten is time-consuming, therefore it is recommended to use Ganache for an initial testing purpose.
– Every single transaction in Ganache will get mine, unlike real ethereum network. That means it does not wait to fill the block with number transaction before starting any consensus. It was built to minimize the wait time for any mining process.
– Ganache is best for in-house blockchain app development and to understand how transactions work.
– It is available in the desktop user interface or with the command line based application.
– Download the latest version of Ganache from https://truffleframework.com/ganache
– Using this emulator, you can view gas limit, gas price, accounts, transactions, address, etc.
– For Ubuntu, you can download the “AppImage” extension file which is dedicatedly developed for the Ubuntu OS.
– Once this file is downloaded, then right click on the properties go to the permission tab of the “AppImage.” Afterward, just checked the box to execute which has a label “Allow executing this program.”

4) Truffle:

– Truffle framework is the main development framework of the Ethereum. It provides a way to deploy smart contract on the blockchain network; It also does activities like linking.

– To install Truffle, you should have NodJS and NPM (Node Package Manager), which you check in your system by using the following commands:

Node  - v or npm - v

To download nodejs visit https://nodejs.org/en/download/package-manager/ and then select download package via a package manager. Then select “Debian and Ubuntu distribution.”

– Make sure NodeJS and NPM are installed in your system. Then you can install Truffle framework.

Just call this command: npm install truffle –g

Note:- if you are unable to call truffle then it means you have an old version or maybe conflicting versions.

So these are the main required tools for any Ethereum smart contract development or node creation. In my next article, I will explain how you can create a private node using these tools on Ubuntu.