Ethereum ÐApps Programming Distilled — Part 1

A list of concepts and tips I learnt from my first decentralised app on the Ethereum blockchain, with answers to the following questions: What is a blockchain and Ethereum? What is a Smart Contract and how to write one with Solidity? How do I create a frontend for a ÐApp with html, JavaScript, Web3.js and MetaMask? How do I deploy all this in a private blockchain, or live for other people to use it?

This is a multi-part article. Here are the links to the other parts:

Unless you’ve been living under a rock for the past year or two, you must know that every person, website and magazine in IT/tech is talking about blockchain technologies (together with AI, which continues to be the other hot topic). The interest for many is as a potentially lucrative investment (still? who knows…), but being a developer I’ve always been more interested in the tech part of it, and just like I did for React Native, I recently decided to dig a bit deeper by getting my hands dirty and creating an application.

The app, msgblocks.com, is meant to be a super easy way for people to store messages on the Ethereum blockchain: this could be a love message for someone, or a prediction of the future, or any other “bold statement” that you want to make persistent forever. A message can be optionally password-encrypted before being sent to the blockchain, and you have the option to let people reply to it (nice in the case of a love letter for example). It’s not meant or going to change the world, but it served well the purpose of learning how to create something from start to finish :)

In this article I’ll try to provide the simplest possible summary of how all this works together behind the scenes, what are the components that come into play for a developer to create a decentralised application, and what are some limitations (and the workarounds) that I’ve found while developing. The article is long, but it also cover a lot!

Albeit a simple project, it was a fun journey that let me learn and discover quite a few things!