Ethereum For Dummies
Book image
Explore Book Buy On Amazon
Many free resources are available to help you develop advanced Ethereum dApps. There are different tools for Ethereum in four categories: blockchain client, test blockchain, testing framework, and IDE. You don’t have to search very hard to find lots of free Ethereum resources in nearly every category.

Here, you learn about ten more free tools to help you create your own Ethereum blockchain dApps. Some of the resources you find here are alternatives to the more popular tools, and others complement the tools you’re probably already using. Each of the resources listed here has unique features and should be on your list of interesting research ideas. They’re all free and they’re all worthwhile additions to your Ethereum development toolbox.

Explore Alternative Ethereum development frameworks

Although Truffle is the most common framework in use, it isn’t the only one. Depending on your needs and preferences, you should look at a couple alternatives. At the end of the day, choose the development framework that fits most closely with your experience and makes developing dApps for Ethereum as frustration-free as possible.

Manage your Ethereum development with Populus

The Populus framework provides many of the same features as Truffle. However, because Truffle focuses on the JavaScript environment, you have to write lots of JavaScript code to automate tasks, test, and maintain dApps using Truffle. That’s fine if you have lots of experience with JavaScript and are comfortable in the environment. But if you don’t know JavaScript or don’t want to invest time to learn it, you may want to look at a framework based on something else.

Populus is a Python-based Ethereum development framework. If you have Python experience or just like working with Python, Populus may be worth looking into. This web page includes a quick start guide, documentation, and instructions on installing and using Populus. If you like Python, try out Populus to see how it compares with Truffle.

Populus requires that you have Python already installed. Because the Python 2.7 End of Life (EOL) is scheduled for November 2020, you should install Python version 3. You should find the most current Python version for your operating system.

Explore Ethereum blockchain containers with Cliquebait

Cliquebait is another Ethereum development framework alternative to Truffle. Instead of running a blockchain environment natively on your computer’s operating system, Cliquebait uses Docker containers, which are similar to a lightweight virtual machines.

Docker allows you to launch multiple containers, all running as separate virtual machines (VMs), with far less overhead than running multiple standard VMs. Each standard VM that you launch runs a full copy of an operating system, along with virtual copies of the hardware that the VM’s operating system needs to run. A container, such as a Docker container, runs only the operating system components and virtual hardware that the programs need. The result is virtualization with lower resource requirements.

Cliquebait provides a Docker image that provides a single-node Ethereum blockchain that you can use to develop and test your smart contracts. It also supports launching multiple Docker containers to simulate a multi-node blockchain, all running on your computer.

Docker must be installed before you can install and run Cliquebait. After you have Docker installed, go to Github for instructions in using Cliquebait.

Select a Free Integrated Development Environment for Ethereum

The IDE you choose to write code will be the most visible tool in your dApp development toolkit. You’ll spend more time using (or fighting) your IDE, so finding the right one is crucial to being productive. The best IDE is in the eye of the beholder. You should try several IDEs and choose the one that is most comfortable to you.

Develop Solidity code with Atom

Atom isn’t strictly a blockchain-based IDE. It’s a powerful general-purpose IDE with Solidity plug-ins. When you add the Etheratom plug-in, you get syntax highlighting, code completion, and the capability to call the Solidity compiler with a single keystroke.

Below, you see the main Atom interface. It looks and feels much like VS Code, with a character of its own. After installing Atom, check out these instructions on installing the Etheratom plug-in.

Atom IDE Atom IDE main desktop.

Go online with Remix

An alternative to installing an IDE on your own computer is to use a browser-based IDE. Remix is a popular IDE that you can access from any web browser. It enables you to write code in Solidity, and then deploy to a blockchain. With Remix, you can easily select a specific Solidity compiler version, along with many features and options you’ll find helpful when developing dApps in Solidity.

You can add code from your local computer or you can write it right from the Remix editor.

Remix IDE Remix web-based IDE.

Keep things simple with EthFiddle

Another web-based Solidity IDE is EthFiddle. EthFiddle is a great choice for a straightforward web-based IDE for writing and compiling Solidity smart contracts. Unlike Remix, EthFiddle doesn’t provide a way to deploy your code.

EthFiddle IDE EthFiddle web-based IDE.

Explore Ethereum clients and APIs

After you write your smart contract code, you’ll need to deploy it to an Ethereum client and then be able to access the blockchain to test and invoke your code after it’s in production. As with frameworks and IDEs, many high-quality free resources are available.

Swap your Ethereum client to Parity

Parity is an Ethereum client that runs a node on an Ethereum blockchain network. Although geth is more popular, Parity is a good alternative that boasts several advantages over geth, including the following:
  • Faster: Syncs the full Ethereum blockchain in just hours and is built to reduce CPU and network load.
  • Lower disk space use: Prunes the Ethereum blocks to use less local disk space.
  • Web-based GUI: Provides easy-to-access features through a user-friendly web-browser interface.
Navigate to to get started with Parity. If you want to use the Parity UI, go to Github to find the latest release. The image below shows a newly installed Parity UI. Note that the first time you run the Parity UI, it runs Parity and starts the sync process with the live Ethereum network.

Parity UI Parity UI.

Interact with Ethereum by using web3.js

By far the most common way to interact with Ethereum smart contracts is through a collection of libraries written in JavaScript named web3.js. You can write code in JavaScript or any language that supports JavaScript calls. From there, web3.js makes it easy to interact with Ethereum data and functions.

Navigate to Github to get the latest version of web3.js, and then grab the latest web3.js documentation.

If you’re looking for a good web3.js tutorial, check out Dapp Tutorial’s introduction.

Focus on Ethereum wallets and security

Security is always a concern when developing Ethereum dApps. The nature of blockchain technology makes the deliberate focus on security a required design goal. Building security into dApps depends on having the right building blocks and a solid method to maintain security after deployment. Two free resources that help you write and maintain secure dApps are the Mist wallet and the OpenZeppelin security library.

Protect your Ethereum crypto-assets in Mist

Mist is both an Ethereum wallet and an Ethereum browser. Mist is the official wallet for Ethereum, developed by the Ethereum Foundation. It also provides access to dApps, similar to the way popular web browsers give you access to websites around the Internet.

Mist does more than just browse blockchain apps; it provides a suite of tools for interacting with the Ethereum network. With Mist, you can generate smart contracts, pool cryptocurrency, and share information among participants who don’t trust one another. Mist attempts to make Ethereum blockchain access as easy as possible.

To get started with Mist, download the latest Mist release for your operating system. After you install Mist, you can launch the browser to create an account or interact with the Ethereum blockchain with a variety of tools.

Secure your Ethereum dApps with OpenZeppelin

One of the hardest parts of developing smart contracts in an Ethereum environment is making them secure from the beginning. Although it may be easy to consider security from the beginning of the design phase, writing secure smart contract code is more difficult. The OpenZeppelin library is a collection of Solidity code that helps you to implement secure code in your smart contracts.

You can import OpenZeppelin in your smart contracts and then take advantage of the many implementations of Ethereum standards, such as ERC-20 tokens, instead of having to implement them yourself. OpenZeppelin keeps you from having to reinvent the security wheel in your Solidity smart contract code.

Learn more about developing Ethereum dApps

If you want to learn more about Ethereum development and have a lot of fun in the process, check out CryptoZombies. CryptoZombies is a step-by-step Solidity tutorial in which you develop a blockchain-based game involving a zombie army you create. As you gain experience, your zombies level up and gain new skills.

About This Article

This article is from the book:

About the book author:

Michael G. Solomon, PhD, is a full-time security, privacy, blockchain, and data science expert. An active speaker, consultant, and author, Michael is a professor of cybersecurity and global business with blockchain technology at the University of the Cumberlands. He has written more than 20 books on IT, security, and the PMP exam.

This article can be found in the category: