
Powerful DApps mediate between a blockchain and the outside world in a decentralized, autonomous, and independent manner. DApps really bring a blockchain to life, and if planning, development, and testing are done right, DApps can be successfully monetized.
DApps, or decentralized applications, are a distinctive feature of the blockchain ecosystem. DApps act as the front end for smart contracts. They expose the business logic of the Blockchain in the form of decentralized services. DApps mediate between the blockchain and its users and record relevant events in the blockchain at the same time.
DApps for Ethereum are a dime a dozen. Nevertheless, they have not yet reached the user numbers of ordinary web or mobile apps. Experts cite two main reasons for this: the high latencies and the astronomical costs of transaction processing.
Support for DApps is not limited to Ethereum (ETH), by the way. EOS, Steem, POA, xDai, Tron, IOST, ONT, Loom, GoChain and other blockchain platforms can also run their own DApps. Only three of the top 50 DApps are said to run on Ethereum.
One of the most popular DApps of all time is the open-source Brave web browser from California-based Brave Software Inc. Brave promises its users improved security and more control over their data.
How a DApp works
DApps on Ethereum typically expose a JavaScript API and/or the HTML/Javascript interface of a web application. A DApp communicates with its own collection of associated smart contracts on the respective blockchain. The smart contracts encode the business logic and capture the consensus critical state of a DApp.
Each instance of a DApp can communicate with another node on the blockchain network.
First and foremost, blockchain application development must address the desired runtime environment of the targeted blockchain platform. This decision determines the choice of permissible programming languages that can be executed directly on the target platform or compiled into the target platform’s bytecode.
Go is typically the language of choice for chain code on Hyperledger Fabric or Sawtooth. Solidity is the preferred programming language for the Ethereum Virtual Machine.
The choice of target platform determines the development environment
In the Ethereum community, the Truffle development environment has become widely accepted. Among other things, Truffle includes an Ethereum-specific test environment and an asset pipeline.
However, there are ways to port blockchain application code between different blockchain ecosystems. For example, some developers write their smart contracts in Ethereum’s Solidity to run in the Hyperledger Sawtooth blockchain ecosystem using Hyperledger Sawtooth Seth. Seth integrates the EVM implementation from Hyperledger Burrow into Sawtooth using the Sawtooth transaction processor SDK. The client of Sawtooth Seth replicates Ethereum’s JSON-RPC API.
Seth is by no means a full implementation of EVM, but it is sufficiently functional to compile and execute smart contracts written for Ethereum for EVM (using solc, for example) – whether in EVM itself or in Sawtooth via Seth.
Debugging: a homegrown testnet
Due to the redundant nature of computations on the Ethereum network, the cost of execution in Gas, the computational unit on Ethereum, always turns out to be much higher than the cost of executing the same computations privately off-chain. This incentivizes DApp developers to minimize the amount of code and data to be processed or secured within the Ethereum blockchain.
For debugging DApps, of course, developers cannot turn to off chain computations. Fortunately, that’s what so-called testnets are for.
A testnet is an insulated “blockchain sandbox” – a replica of the respective mainchain – for debugging DApps and smart contracts (or Hyperledger chaincode). Some service providers offer such testnets for free. Common Ethereum testnets include Rinkeby.io and ropsten.etherscan.io, for example.
Those who prefer to set up their own blockchain network for testing purposes can find the necessary technical requirements for decentralized application execution in a public cloud such as AWS and can help themselves to the configuration of suitable tools such as Puppeth (for Ethereum Proof-of-Authority).
Puppeth handles all the tasks involved in creating an Ethereum blockchain, from creating the Genesis block to configuring boot nodes, signers, Ethstat servers, crypto faucet, wallet browsers, block explorer, and providing a dashboard and other services.
Leading blockchain frameworks can also be deployed in the form of blockchain-as-a-service services in the cloud.
When a smart contract is invoked in EVM, a new account is created if successful. To determine which function is to be executed in the smart contract and which arguments the function call contains, a so-called Application Binary Interface (ABI) is used. The creation of the input data for a contract call can be implemented using various libraries (e.g. ethereumjs-abi).
Goldmine DApps
Many development forges have already been able to successfully monetize their DApps. The infamous DApp CryptoKitties was able to rake in a whopping $12 million in revenue in its first month of initial availability; developers were able to cash in on a share of that.
A very interesting business model underlies the Brave web browser. Brave is undoubtedly an extremely innovative desktop DApp. The browser is based on the Chromium engine but relies on its own blockchain in the backend to implement advanced features around privacy and ad management.
Brave even includes its own crypto wallet for the in-house token BAT. Through this integration, California-based Brave Software Inc. aims to create economic incentives to encourage certain user behaviors. For example, Brave would reward visitors to Brave-friendly websites, those with ads from the Brave ad network, with tokens for their attention. Brave users would also be able to vote for ads and other content. In the future, Brave hopes to implement a pay-to-surf business model.
However, the development of DApps with the intention of monetization requires that the respective blockchain platform itself is considered sufficiently reputable to ensure a chance of survival for the respective DApp.
The vast majority of DApps on blockchain networks EOS and TRON fall into the gambling category. The same is true for Ethereum, but here at least most revenue flows to more viable application scenarios.
There are also black sheep among the public blockchains. For example, the Steem blockchain came under fire with so-called vote bots.
Vote bots on Steem are automated Steem accounts that have many tokens and thus hold considerable “Steem power”. Steem users send money to these accounts to be able to claim this Steem power and to obtain Steem upvotes and thus more money for their own content. (The money “invested” in this way, which was not wasted on buying votes, can only be withdrawn after a delay of 13 weeks). Unfortunately, the Steem community has not yet been able to decide to finally put an end to this dubious practice.
Conclusion
DApps have it all. These applications mediate between a blockchain and the outside world – decentralized, autonomous, and independent.
Would you like to get more information about DApps development? Contact us today.