Building dapps on Ethereum - part 1: overview
In this blog post series I’m going to cover how to build decentralised applications, so called “dapps”, for the Ethereum network. Specifically for Ethereum’s latest release called Homestead. We will cover topics such as the development environment, essential blockchain concepts, how to develop so called smart contracts, the user interface, automated testing, and the importance of Ethereum browsers such as Status.im. In this very first part I’m providing an overview of the bigger picture of how things relate to each other.
Smart contract backend
All decentralised applications use smart contracts that are deployed on the “blockchain backend”. Smart contracts handle the most important data processing and storage for your application (but not necessarily all of it). Check out my blog post about a practical example of using the blockchain to understand more about what smart contracts are.
Later in this series we will learn how smart contracts are developed with the Solidity programming language and how the development cycle is made easier by using the Truffle framework.
The final thing to consider is a browser that can render your HTML5 user interface. Traditional “web 2.0” browsers won’t be enough in the case of decentralised apps for the following reasons:
- They don’t have a wallet for digital currency (such as Ether) built-in. This is needed to make transactions super easy.
- They would have to rely on a central/external RPC service to interact with the actual blockchain. We don’t like central things!
Later in this series we will learn about the Mist desktop browser and the Status.im mobile browser, and how to develop for these.
In my last post I briefly touched on barriers of entry to Ethereum. The Status.im browser is especially important and interesting in this regard. Status.im is a kind of “instant messenger meets browser” or “mobile operating system for Ethereum” that can be compared to WeChat which is incredibly popular in China. Browsers like these take a whole new spin on interaction on the (decentralised) web – very important topic!
- Part 2: smart contracts
- Part 3: user interface
- Part 4: decentralised hosting using Swarm
- Part 5: Ethereum Name Service and Swarm
Featured image: Creative Commons Attribution 3 - https://www.ethereum.org/assets