Understanding DApps

Rafael Etereo
Etéreo
Published in
4 min readFeb 26, 2021

--

So, what are decentralized applications?

DApps are applications that run on a peer-to-peer network, meaning there is no central point of control (or failure).

On the internet 2.0 ecosystem, web applications have been usually coded in the following way:

  • We have a client-side application that handles some complex logic and communicates with a series of web services or APIs
  • The APIs may be deployed on one or many server instances, but unless you have a multi-cloud architecture or something really complex, your APIs (and sometimes the service that serves your front-end code) are dependant on one point of failure.
Normal Web Application

With decentralized applications, the code that handles the “back-end” logic (A.K.A. Smart Contracts), will be running on the blockchain, a decentralized peer-to-peer network of nodes.

Smart contracts are public executable pieces of code that can perform transactions on the blockchain and handle logic.

The blockchain runs on multiple nodes around the world. It means there is no downtime. You can always access some of the nodes.

You can interact with the blockchain from a browser or a server, but you always have to do it with a wallet. The wallet is your public and private key pair that allows you to sign transactions and store tokens that represent something on the blockchain.

Blockchain architecture

DApps may have some caveats, or things you may take into consideration before starting your project

  • Data is going to be public if you are using a public blockchain. All the data stored in the blockchain is going to be accessible to other members of the network. But you can run a private blockchain to solve this issue, use a combination of databases and blockchain, or use a blockchain that can handle private data.
  • You have to pay an execution fee for each transaction. Depending on the blockchain of your choice transactions can be higher or lower.
  • Each blockchain has a different use case. This is an emerging technology and is in constant evolution, finding the right tool means having to be constantly learning.

Serving the Front-End code (web2 vs web3)

In traditional applications, we serve the Front-End code from a central server (or some CDNs which are not that “centralized” but still under the management of one company or entity)

In this new ecosystem, we have things like IPFS, filecoin and swarm, distributed file systems that allow serving files, and therefore website HTML/js/CSS code.

The benefits of these new systems are notable, having no central point of failure, no downtime, and bigger security.

At this moment the technology is in the early stages and is heavily influenced by the scalability and speed of the underlying blockchain. In the future, we hope to see the technology improved by several factors of speed.

Talking with the backend (web2 vs web3)

In the current ecosystem, when we are coding a web app we generally use data protocols to call an API in order to execute some CRUD logic.

With DApps you need to communicate with some smart contracts, this requires two things:

With these two things, users can execute logic on the smart contract by paying some fees. We can also read data from the blockchain, but this can be sometimes slow.

For enabling this functionality on the Front-End there are some libraries that are becoming the standard:

These libraries help you interact with the network, check balances, sign transactions, and much more. To use the library the user must have some in-browser wallet such as MetaMask

MetaMask wallet

In our case, we started focusing on developing EVM-compatible DApps on the Ethereum network. Ethereum is the main blockchain network where the ecosystem of DApps is flourishing. In the future, we expect to see growth and adoption in other blockchains such as ADA (Cardano), IOTA, EOS, Lisk, and many others.

What are the use cases of DApps?

Right the most notable use cases are:

  • DeFi or decentralized finance
  • Governance
  • NFTs (Non Fungible Tokens)

But everything is changing and we start to see how the web3 is approaching to the already established monopolies on the web2 era.

  • New paradigms of the current existing apps (Social Networks, Communications, Video)
  • AI and Machine learning
  • Decentralized Name Servers
  • File Systems
  • Everything!

And if you need a team of developers to help your company transition to the smart-contracts and DApps era, Etéreo is your team.

--

--