Main characteristics of a decentralized app (or dAPP)

The term dAPPs refers to internet apps that run on decentralized networks. The system distributes the work needed to run the application among the users of the network. This means that these apps cannot be shut off or deleted. Users of this network are rewarded with tokens for the provision of the computing power for these apps.

The most widespread network for dAPPs is currently Ethereum. You might have heard about the app CryptoKitties. This is an application where you can buy digital kittens for your cryptocurrency. It is one of the apps working on a decentralized system.

How are dAPPs created?

Anyone with programming language can create apps in the Ethereum network since it is open-source code. These apps work on blockchain technology and they are becoming increasingly interesting for developers around the world. The Ethereum blockchain, which is the leading platform in the number of dAPPs, has already created over 1,000.

What is a decentralized application?

Unlike traditional applications running on platforms like iOS and Android, dAPPs do not use any host server or computer to manage code and store data. This means that there are no restrictions on their development and no institution or group of people can change the rules of their functioning.

The dAPPs’ back-end code runs on a decentralized peer-to-peer network. In the case of classic apps, it works on a centralized server. The front-end code for dAPPs can run on any programming language with the ability to create API calls to their back-end. In addition, their front-end can be located on decentralized storage, such as IPFS.

Main differences between developing centralized apps and dAPPs

The main difference between developing a centralised app and a decentralized app is in code checking (testing). During the development of decentralized applications, precise testing must be done at the development stage, because after placing the dAPP on the main blockchain net, it is no longer possible to make changes to its smart contract. Consequently, any error in the code can result in loss of user finances and damage to the reputation of the project.

One example of such an error was the Parity project, which underestimated testing in a big way. The users of this wallet lost more than $300 million in Ether, and that was when Ethereum was worth less than $300.

In classic apps, on the other hand, there is often an effort to hasten their development and release them in a short period. Regular app developers create an MVP, test it, and then worry about releasing security updates.

Ethereum as a pioneer in dAPPs development

The first blockchain platform that could create a Turing-complete language for writing smart contracts to its blockchain was Ethereum. Thanks to this, it has become the main space for dAPPs development. Most of the top 100 dAPPs are currently running on this blockchain. Ethereum also has approximately 30 times more developers than other blockchain projects.

Developing dAPPs on Ethereum may require knowledge of its own programming language. The default language is Solidity, which is related to C++, Python and JavaScript. A potential successor is the experimental Viper language, which is more straightforward than Solidity.

However, there are alternatives such as the Tendermint and Cosmos projects that allow you to create dAPPs in traditional languages ​​such as Python and JavaScript. Something to consider is that the dAPPs’ smart contracts, which are the code that lives on the Ethereum blockchain, are often only a minor part of the entire dAPP code.

Learn to program on the Ethereum blockchain

Until recently, finding useful resources for Ethereum developers (besides Google Search or Stack Overflow) was not so easy. As a result, even the more experienced developers could face some problems when trying to find well-written documentation. That’s why Corbin Page and Parker Place from Meridio and Leah Feuer from ConsenSys Labs decided to create an extensive list of platforms, services, tools and infrastructure for developers with any level of expertise.

Learn more about Decentralized apps right here: https://github.com/ethereum/wiki/wiki/Decentralized-apps-(dapps)