How to Start Development on the Blockchain

The technology of Blockchain is not a new thing. However, it did not get into our life until Satoshi’s Bitcoin whitepaper. We see one of the results of the blockchain, cryptocurrencies, first in 2014’s Gartner’s Hype Cycle:

Gartner Hype Cycle – 2014

And also, the blockchain was listed in the Hype Cycle. In both graphs, the common expectation of the adoption of these technologies is 5 to 10 years.

Gartner Hype Cycle – 2016

Actually, developing blockchain project hype reaches its top level in past 2 years. In the technology world, 2 years is both long and short time. If you started developing a product on top of the blockchain technology today, you can catch the hype most probably.

It is still not too late to learn and start for development in blockchain area. The point is finding how and where to start. I am new to this world too so I will try to draw a roadmap to start for you.

Basics

First of all, I strongly recommend you to watch this short and free introduction course by Ravinder Deol on Udemy to understand what is blockchain briefly. This is one of my best introduction courses about blockchain on the internet. There are advanced courses by the same lecturer if you want to continue to learn more.

On the more technical side, it is beneficial for you to know how some key techniques works such as decentralization, cryptography, and P2P network. I am not an expert about these but there are lots of courses and studies about them. One more useful thing is reading popular blockchain based product’s whitepapers, especially technical ones. Most projects have technical whitepapers, which explain how they shape the architecture of the product, separated from standard ones.

Development on Ethereum

If you are interested in developing an Ethereum based project, you should learn what is a smart contract and how it works. If you want to learn how to code Ethereum project with Solidity you can check the official documentation or if it is more convenient for you to learn something in an interactive and funny way, please check CryptoZombies. This is a really informative online course and it can be fun to create, feed, and play with zombies.

Most of the Ethereum based projects have their smart contract sources on their Github profile. So, you can check these open sourced projects to understand the real-life dynamics of Smart Contracts.

Actually, if you are familiar with JavaScript, it should not be a really hard thing to understand Solidity basics for you.

Tools

It is almost mandatory to use Remix to develop Ethereum based projects. You can test and debug your smart contracts in the really easy way using Remix. Also, you do not need to run a local Ehtereum network on your PC if you choose to test your code on Javascript VM. It is not easy to use Remix at first if you are not familiar with it but after you start to use I am sure that you will like it.

In the early days when I started to develop an Ethereum project, I try to use Mist Browser, but it is really not necessary to download all Ethereum blockchain for the beginning. Then, I switched to Ganache when I need a local Ethereum blockchain. You can control your own local Ethereum blockchain with using Ganache. You can also run tests and execute commands. Ganache helps you to create both development and the test environment. Basically, it creates a local RPC server and test accounts with mining control and logs records.

Truffle Frameworks is basically “the most popular development framework for Ethereum with a mission to make your life a whole lot easier” according to the explanation in the official website. Actually, I cannot add any extra things to this definition. You can develop smart contracts and build and attach them int your project easily. Also, for the smart contract testing, Truffle is one of the best suitable frameworks. There are ready-to-use samples that allow you to get a distributed application basics. Truffle calls these samples as Boxes. Truffle Boxes includes smart contracts, necessary libraries, front-end structure, and the connection between contracts and views.

Development Environment

I really love VS Code as a text editor. I do not know why but I do not feel comfortable with IDEs. It’s easier for me to use a text editor for the development. Still, it is your choice to use a tool for the development. Whatever the situation is I think that extensions always make the development life easier.

For react developers, I strongly recommend the browser extension https://github.com/facebook/react-devtools. I have both on my Firefox and Chrome browsers. Its functionality is really simple. It shows you react components’ detail and you can check the props or states that you need to watch changes.

Backend & Database

Think that you are developing a product that does not need any backend. Actually, it is not true. You do not need to develop any backend using Java, Node or any other languages in the blockchain case except some extraordinary cases. Your smart contracts are your backend code. So, I prefer not to say that the blockchain is a back endless, unlike many popular words. If you think that you need to a backend code this means you are in the wrong way or the blockchain technology does not meet your product’s technical requirement.

Actually, blockchain is a kind of a database that you can store your data on it. But, for today, it is an expensive way to store all your data on it. Considering the rapidly changing value of the Ethereum in the market, it is risky to calculate your costs. I can suggest you to use an external database to store especially your metadata. There are some projects developing such as IPFS, Storj, and BigchainDB. Also, check the MongoDB’s whitepaper to understand how you can store your data distributed.