Etherloin — Your Hassle-free Ethereum Development Environment

The last thing you’d like to care about, when starting new Ethereum-based software project is development infrastructure.

Alexander Lockshyn
Short stories on software
2 min readMar 20, 2018

--

Unfortunately it is (or was) not that easy… You had few main options, each of which is flawed:

  1. Set up local Ethereum cluster for development. Probably the most straightforward solution, but requires some initial set up and forces you to mine Ether on your local cluster, which is very CPU-intensive task, so forget about development on your battery-charged laptop.
  2. Launch local node connected to Rinkeby Testnet. Another valid solution. Eliminates mining, but requires you to get Ether via Faucet. The main drawback for me is that data is persistent on TestNet which is fine for staging purposes, but not for local environment, where you run unit tests many times a day.
  3. Ganache (formely TestRPC) — synthethic ethereum-like environment, where you deploy smart contracts. Very convenient option, but unfortunately it is far from full-fledged Ethereum implementation and does not allow you to do such common things as creating accounts, transfering funds between them and tracking transactions history programatically.
Ganache is easy to use and convenient, but limited

The Ultimate Solution

Few months ago I’v found a tool called Ethermint. It is a lightweight fork of Ethereum, with Tendermint POS consensus engine. Ethermint does not require mining and compatible with all of standard Ethereum tooling, e.g. go-ethereum client, web3, ethereum wallets, etc.

Later I’ve built an Ethereum application developer’s toolkit called Etherloin. The toolkit provides opinionated development environment allowing you to start new project on top of it in a few minutes. It consists of:

  • Local Ethermint cluster;
  • Vanilla go-ethereum (AKA Geth) client for the cluster;
  • Truffle tool for creating, testing and deploying smart contracts;
  • Everything is wrapped into set of Docker containers, organized via docker-compose;
  • Few additional tools: Ethereum Block Explorer, Netstats monitoring, etc;

The only prerequisites are Docker and Docker-compose. Starting whole environment is as easy as running:

Focus on things that matter

My colleagues and I already started few projects on top of Etherloin, it allowed us to focus on stuff that really matters (like Smart Contracts, Ethereum blockchain interaction, UI and off-chain business logic) and don’t spend much time on development infrastructure.
Give it a try!

--

--

Alexander Lockshyn
Short stories on software

Seasoned software engineering manager and hands-on engineer, urban traveler, hardcore gamer, guitar player, dark sci-fi fan and simply geek: http://mourk.com