Decentralized Applications: Creating Your First DApp

decentralized applicationsDecentralized applications, or DApps, are decentralized services that exist solely on the blockchain. Currently decentralized services can be categorized into three main types – decentralized exchanges (DEXs), decentralized storage solutions and cryptocurrencies. Blockchain is decentralized because all of the data is stored on multiple nodes, so even if one node goes down the others will still be able to access its data. DApps are decentralized applications that run on a blockchain platform just like Bitcoin and Ethereum do.




What are Decentralized Applications?


A decentralized application (DApp) is a program that can be executed on a peer-to-peer network of computers rather than a single computer or server. This means that all functions of the decentralized application will run on blockchain technology in order to leverage its decentralized nature and provide users with an open and transparent platform where they can transact directly with one another.  For example, decentralized exchanges are able to provide users with an open and transparent platform for trading digital assets without having to trust any third party with their funds since no centralized service provider is required to complete transactions.



Examples of Decentralized Applications


Decentralized services have the potential for disrupting many of the world’s largest industries – finance, law, media, government/legislation and others. By supplying these services using blockchains from Bitcoin or Ethereum, anyone can leverage decentralized applications (DApps) in order to create value for themselves or others. Common use cases for decentralized applications include: decentralized exchanges (like EtherDelta), decentralized storage solutions (like Storj) and decentralized currencies (like Litecoin).


Example #1:  Decentralized Exchanges

Decentralized exchanges provide users with an open and decentralized platform where they can transact directly with one another.  Decentralized exchanges do not require you to trust any third party with your funds since decentralized services are operated by software which runs a network of computers, also known as nodes. Decentralized exchanges charge very low transaction fees because they do not have any centralized service provider and instead are run purely on blockchain technology.


Example #2: Decentralized Storage Solutions

Decentralized storage solutions, like Storj or Sia, leverage blockchain technology to create a decentralized peer-to-peer file sharing network that allows users to interact without having to trust each other or any third party.


Example #3: Cryptocurrencies

Cryptocurrencies represent the first widely used example of decentralized services offered to the general public. Unlike centralized fiat currencies (like USD), decentralized cryptocurrencies are not controlled by any single individual or entity. Instead, these cryptocurrencies are governed by distributed consensus networks that are based on blockchains from Bitcoin (BTC) and Ethereum (ETH). The benefits in using decentralized services provided by decentralized currencies are immediately clear – cryptocurrencies enable borderless, decentralized payment transactions that can be completed anywhere in the world.

In fact, decentralized currency exchange services like ShapeShift and Changelly have created exchanges that enable users to quickly swap any two types of crypto assets without having to register an account or provide any identifying information.


Example #4:  Decentralized Social Networks

Decentralized social networks, like Diaspora and Steemit, represent another version of Facebook, that enable users to interact with one another without having to trust a third party with their data. Instead, these social networks are operated exclusively on decentralized blockchains, allowing users to directly communicate with one another without having to worry about censorship or network interference.



Creating Your First DApp: Step-by-Step Process


Step 1: Determine the Decentralized Service You Want To Create

Before creating your decentralized application, it’s important to determine what service you want to build.

For example, do you want to create a decentralized social network that will allow users all over the world to interact with one another directly? Do you want to create a marketplace that allows buyers and sellers from all over the globe to trade goods with one another without having to trust third party centralized services like eBay? Or, do you want to create a new currency that enables borderless transactions of value anywhere in the world?


Step 2: Determine Where Your Decentralized App Will Run (on Ethereum or Bitcoin?)

DApps are founded on blockchains from either Bitcoin or Ethereum. In fact, decentralized currency protocols like Bitcoin and decentralized blockchain-based applications from Ethereum are the best decentralized services available today in nearly all industries.

Regardless of which decentralized application you choose to build, it will run on either the Bitcoin or the Ethereum network – not both! Keep this point in mind as you think about your decentralized app idea because you don’t want to have to create two separate DApps if your decentralized service is better off running on only one blockchain. For example, decentralized storage solutions (like Storj) typically prefer to run on blockchains from Bitcoin since they leverage a native cryptocurrency (BTC) for payments; therefore, their business model is better suited using an open decentralized protocol such as Bitcoin rather than being tied to the Ethereum network, which typically runs decentralized applications rather than decentralized services.

Decentralized social networks (like Diaspora and Steemit), on the other hand, run better on the Ethereum network since they leverage decentralized protocols like Ether for payments.


Step 3: Determine the Decentralized Application’s Consensus Algorithm

Before you begin creating decentralized applications, you must determine how your application will function. How will transactions be validated by decentralized applications? What is the app’s consensus mechanism? 

For example, decentralized currency protocols like Bitcoin and exchange platforms like ShapeShift run on blockchain-based mechanisms – they use decentralized consensus algorithms (DCA) to validate transactions. On the other hand, decentralized social networks such as Diaspora and Steemit use a proof-of-stake algorithm (DPoS) to validate transactions.

What app you want to build here will largely depend on what decentralized service you are trying to provide. For example, exchange platforms like ShapeShift and marketplaces like OpenBazaar run as a decentralized trustless protocol that depends on decentralized consensus protocols in order to authenticate all transactions. On the other hand, social networks like Diaspora and storage solutions like Storj run off of decentralized proof-of-stake algorithms since they do not need decentralized consensus protocols in order to authenticate all transactions.


Step 4: Determine Whether Your DApp Has a Token

If your decentralized application does not require decentralized tokens, then there is no point in creating them! However, if the decentralized application you are building does require decentralized tokens to be used as a medium of exchange for commerce purposes and/or access to decentralized software components (which could be an API or an SDK), then you can continue on with Step 6 below.


Step 5: Setup Your Decentralized Application’s Wallet

Next, set up some type of decentralized wallet (like MyEtherWallet) which simply acts as storage space for all the decentralized tokens that you will create. In order to utilize these decentralized applications that use  protocols like Ethereum as their underlying blockchain infrastructure, they very often require their own unique custom decentralized tokens. For example, decentralized applications built on top of Ethereum very often require their own decentralized token and apps built on the Bitcoin blockchain usually do not require their own decentralized tokens in order to operate properly (these decentralized apps use bitcoin’s decentralized token instead).


Step 6: Setup Your Decentralized Application’s Smart Contract

Now you will need to set up a decentralized wallet account that is specifically designated as a decentralized application’s smart contract account. You may have heard this term smart contract before – it refers to a self-executing piece of code that acts like an agreement between multiple parties or even just one party and itself (if an event occurs). The benefit of using a decentralized protocol based on proof-of-stake decentralized consensus algorithms over those that utilize proof-of-work decentralized consensus algorithms is the decentralized protocol’s ability to execute and run on decentralized smart contracts. Decentralized applications that utilize protocols like Ethereum or bitcoin can benefit greatly from utilizing decentralized application hosting services (like decentralized cloud storage) since these hosting services usually support decentralized smart contracts. In fact, many of these DApp hosts provide some type of IDE (like Microsoft Azure’s Solidity Integrated Development Environment ) which makes it easy for developers to create their own decentralized applications much easier than creating them directly through a command line interface with no type of visual interface helping along the way.


Step 7: Using Your Application Creation Tool (Like EOS or Ethereum) Build Out the Decentralized Application

Once you have created a decentralized wallet that is designated as your DApp’s smart contract account, it is time to use some type of decentralized protocol-specific development tool in order to build out each individual app feature from start to finish. These decentralized applications usually consist of separate apps that all run within the same decentralized platform or DApp ecosystem; however, they are not necessarily directly interconnected with each other.


Step 8: Host Applications on Decentralized Cloud Storage Services Like IPFS and Sia

Now that you have completed your decentralized app, you need to host it somewhere. You can do this by utilizing decentralized application hosting services; however, since decentralized applications must make use of decentralized protocols to function properly, this usually means the apps will not be hosted on a decentralized protocol but rather a centralized server or servers depending on how the service is structured. The benefit of using decentralized cloud storage services is they are much cheaper than regular centralized data storage services – usually in terms of both pricing and amount of storage space per cost or per byte . However, the tradeoff comes in the form of less decentralized security.


Sunvera Software develops next-level software applications from start-to-finish. We are a premier software and mobile app development agency specializing in healthcare mobile app development, custom mobile app development company, telehealth software, sales dashboards, custom mobile app development services, retail software development, supply-chain software, ecommerce, shopify, web design, iBeacon apps, security solutions and unified access software.

We are proud partners with Amazon AWS, Microsoft Azure and Google Cloud.

Schedule a free 30-minute call with us to discuss your business, or you can give us a call at (949) 284-6300.