How to Develop Better Dapps on Blockchain
Blockchain is one of the things to consider for your business in 2020. If you don't know why, then you must look into the popularity of blockchain: its powering B2B, B2C and peer-to-peer transactions and business operations more than ever before. And more is yet to come.
Today's research by Meticulous Research finds out that the global blockchain technology market is expected to grow by 74% to reach $28,248 million in 2025. May just not yet to adopt, but how prepared are you? Today, there is increasing adoption of blockchain in "BaaS (Business as a Service), growing number of merchants accepting cryptocurrency, and growing interest in blockchain among financial institutions" and these are the key factors driving its growth in the global markets.
Dapp or decentralized applications are an important entry point for many willing to taste and implement blockchain. They are a different version of your normal apps but open-source, based on blockchain, have an inbuilt consensus protocol and token generation, and whose crypto/token is used as incentives for powering its economics.
If thinking of developing one, here is how you can develop a better dApp project?
Research: Prepare well for development
Researching dApps is probably the first step towards development, after you get an inspiration to develop one, or even before you even think about doing one.
Whether you are researching about what best platform there is out there to develop dApp and find that Ethereum, TRON, EOS, and Stellar as leading; or perhaps want to find what most important features a dApp must have, research is important before you develop a dApp.
You might want to ask yourself about how popular dApps are in business or your industry before you can get to switch from normal mobile or desktop or Linux app development. You might also be interested in diversifying business by implementing blockchain and so researching on blockchain suitability in your business now and in future may be something worth looking further into, anyway.
The type of dApp and most popular kind of dApp will also be great consideration for your research items; which industry are you in or want to be in? Study indicates, for instance, that Decentralized finance (DeFi) apps are becoming more popular recording over $525 million in growth in Q3 of 2019. Ethereum-based DeFi apps, however, are more popular with the same study showing they contribute more than 88% or 132,000 users, of the total volume in the finance sector.
But gaming applications, with which TRON leads, are also far more popular application -- probably the most -- for blockchain currently. In fact, its long been thought that gaming dApps will fuel mass adoption, but that's in part because usability of cryptocurrency and blockchain must see extensive adoption in business, education, health e.t.c to be able to come to the surface of the majority of users' day-to-day activities.
Having said that, you might want to consider the different types of dApps there is, including Contracts, Wallets, Clients, Infrastructure, Tooling, UIs, Patterns, and others. You might think of exchanges dApps, wallets, Virtual Reality and Augmented Reality dApps, Auctions, etc. You might consider different categories of dapps still -- those that have their own blockchain for instance Bitcoin, Ethereum etc and so develop your own blockchain (private or public); protocols that run on other blockchains and which don't or have tokens for instance Omni; and those dApps that use the category 2 protocols e.g. the SAFE Network which is a decentralized data storage and communications network and which uses the Omni Protocol for issuing SafeCoins.
At the core of research are concerns that you do not want to have a dApp that nobody uses and/or finds fun using: so in addition to researching issues such as the popularity of dApps in the industry you are in, there also are other issues to consider such as user experience with the dApp -- what are users looking for in the dApps they use and what makes a dApp deliver a good user experience? Will you monetize and how can you monetize? You also want a dApp that is scalable in future as more users join in, as much as you want to have something that is secure and hard to penetrate by hackers.
Further, you want to be clear of what is needed in form of development environment -- the tools (as an example of many tools there are), programming languages that are at your development disposal and what the most helpful would be, and even the skills set you need...Oh and a clear road map for your project.
You want to understand who the dApp will be serving or to what problem it addresses itself, and the platforms with or to which it will interconnect. Most important, be sure to plan for code development, documentation, rigorous testing and prototyping, implementation, continuous development, and get clear on the needed budget whether you want to do it on your own or outsource development services.
Finally, research on the best methods of marketing and promoting your dApp once its ready. Consider that dApp development is a cycle and not a path with a single clear end point. Also, think about and research widely about the possible enablers, opportunities and strengths as well as weaknesses/threats and impediments to your project's success such as regulatory uncertainty; limited scalability; security, privacy & lack of awareness.
Make sure to leverage dApp data sources and websites such as DAppTotal DappRadar, Dapp.com, Stateofthedapps.com stats, and Dapp Review.
Coding it yet? Going Cross-platform or cross-blockchain. May be, may be not yet
Curently, majority and most development platforms are likely to render dapps that work on one chain like Ethereum and if you want it to work on a seperate chain or blockchain that is different from the first one, you would have to sort of do it all over again or extend some features via coding to suit it to the different framework of the new blockchain.
So to speak, interoperability of dapps across chains or blockchains hasn't been a thing of huge concern or popularity right now, but sort of only starting to. There are so many benefits of having a cross-chain dApp both for users and owners alike. For instance, with a cross-blockchain app, you could avoid rebuilding the dapp for a different blockchain
Therefore, interoperability between chains, now or future, is something you might start to think of.
Computer app development has been there, mobile app development has been there, so is likely blockchain in the future. If you were to build apps that work across Android, iOS, and Windows today, you would consider quite a number of tools out there: Adobe PhoneGap, Chrome Developer Tool, Appcelerator, Corona, React Native, Xamarin, Qt, Sencha and others. They are in plenty. But blockchain development tools which you can use for interoperable dapp projects are countable. So you might need to do some research too in this area.
Interoperability comes in two ways: facilitating cross-blockchain and also facilitating cross-dapp communication.
There are a number of good examples of cross-chain dApps already under development. Saturn decentralized token marketplace, for instance, is set to work across every blockchain. Its being developed by Saturn Classic. According to Saturn, this would push forward adoption of crypto and exchanges. Their exchange would be deployed on ETH & ETC and Saturn Wallet. Currently, it empowers trading via Saturn Protocol on Ethereum and Ethereum Classic.
If you are developing a dapp on EOSIO and want it to be able to communicate with other dApps or services on other blockchains, you may consider LiquidApps whose LiquidLink bridge can help you develop a dapp that can communicate and connect your dApp to other applications, assets, data sets, and actions on other blockchains starting with Ethereum and EOSIO chains, Bitcoin, Telos, BOS, Ripple, Stellar, Tron, Cardano, Bitcoin Cash.
With it, for instance a developer can deploy Ethereum contracts and sign Ethereum transactions and actions from their EOS dapp. This basically establishes it as a cross-chain development tool for dapps that can work on Ethereum and EOS. The infrastructure is powered by dApp Service Providers (DSPs) who are stakeholders that deliver utility, communication, and storage services to facilitate blockchain scalability.
Therefore, with LiquidApps, a developer may want to choose more providers to achieve more decentralization for their dapps but then incur more costs. However, developers can choose the DSPs they prefer. It doesn't use an intermediate blockchain component which would further complicate matters for blockchain developers.
In the end, cross-blockchain-able dapps can become more versatile by triggering events with other dapps on other blockchains and it unlocks new cost-effective possibilities for the dapps. As a developer, you save time for development, costs of development and maintenance and ability to use familiar tools for new or unfamiliar environments.
Speaking of blockchain interoperability or cross-platform platforms (desktop windows and Linux, mobile, ipads etc) many people now choose web dapps that work over browsers.
Wanchain, Cosmos, and Polkadot are some of the projects looking at cross-blockchain interoperability more seriously. So they may be the tools to consider for those developing cross-chain dApps. Polkadot, which is powered by the Web3 foundation, is an open-source protocol which enables transfer of data types and assets across blockchains. Polkadot, however, uses an intermediate blockchain component unlike Polkadot.
Cosmos, also called the "Internet of Blockchains," is a framework used to build interoperable, application-specific blockchais. It is made of different independent blockchains that it calls “Zones” which are attached to a central blockchain called "Cosmos Hub."
For those searching for interoperability projects, the EVEN Cross-Chain Interaction Network from the EVEN Foundation is something to consider. It is working on something that can manage smart contracts on different blockchain networks. The Even Cross-Chain network provides an infrastructure for cross-chain interaction. Based on a hybrid of various other algorithms is the cross-chain blockchain network protocol known as the EVEN Network. Dapps built on this platform and based on this protocol can work across Bitcoin, Ethereum, and EOS blockchains.
EVEN Network makes it possible to perform transfers and cross-chain exchanges. Smart contracts based on this protocol can interact with different blockchains and make it possible to transfer value via a swap or trade.
The fact that cross-chain dApps are able to interact with different blockchains, they can leverage speed from multiple chains enhancing scalability. The EVEN platform will also have a library of standard contract templates for external blockchain platforms that can be used via the API. Even is also building their own multi-currency crypto-wallet and a decentralized exchange.
Developers willing to develop cross-chain dApps can also consider the Loom Network which provides scalability and seamless integrations to Bitcoin, Ethereum, Binance Chain, and Tron (with EOS and Cosmos coming soon) and all major blockchains. Once the dApps are deployed on Loom, they can work with other blockchains as well, hence developers can reach largest number of users possible.
In the field of cryptocurrencies, developers are considering using of Atomic Swaps, wrapped tokens etc.
However, scalability and security would be of greatest important concern for a growing dApp working across multiple chains. We should also note that the dapp platforms that have most users are not the cross-blockchain protocol-based but the likes of Ethereum, TRON and EOS which largely do not support "cross chaining" as much yet. Therefore, considering the tools we discussed, you might want to pursue a path that renders possibility for cross-blockchain in future but still stick with most popular platforms.
Funding your dApp project
Funding a dApp project probably comes after you have a clue of what you want to develop, when and how. Put together a plan and may be do a prototype first.
Nevertheless, if you are taking on a dApp development project, there are many alternatives to funding it. Lets borrow some ideas from allover the Internet. But first think of your dApp project as a startup. Developer grant programs can fund your dApp after you give them a grant application. These are countless looking at Google search for dApp grant programs.
Then you have hackathons, which can be held online or offline and suitable for both beginner and experienced developers alike. You can also post bounties in Ethereum's monthly hackathons through Gitcoin or chase other bounties or suggest project ideas for funding which is active for many blockchains. Its the way they extend their networks.
Crowdfunding is also a popular alternative for crypto and other dApp projects for instance through Initial Coin Offerings, Initial Exchange Offering on exchanges or ICO/IEO websites and/or the very traditional way of crowdfunding for any projects on websites such as Kickstarter.com and Indiegogo: there are countless options here. Also, tokenization is a major way of gaining funding where funders can contribute as little as possible and either get shares in the project or not.
Then there is private funding such as through private fundraising and/or venture capital. Which means you might need to prepare lots of pitches anyway. There are also listing services that combine listing with funding such as App.co.
But funding a dApp or project is harder than said. Its a process but more so a strategy on its own which for instance may require you demonstrating the idea, have a convincing idea or convince people the worth behind it.
Auditing with a professional and professional tools
We are talking about going beyond the normal steps of coding, initializing the blockchain where you simply create the first block manually, executing the first smart contract, and do debugging. Auditing is a critical step if you are building smart contracts or dApps that will be deployed on a public blockchain for purposes of businesses and targeting customers; and when building dApps that will connect to public services and multiple assets/services.
Security flaws are identified during this process to prevent your dApps from hacking attempt, which could cost users their money.
Auditing involves conducting attack vulnerability tests, inspecting the complexity of the contract, inspecting failure preparation, figuring out the code currency, searching for re-used versus duplicated code, and inspecting external calls. Some of the attacks dApps and smart contracts should be investigated against include race conditions, re-entrancy, cross-function race conditions, transaction-ordering dependence (TOD)/Front Running, timestamp dependence, integer overflow and underflow, DoS with revert, DoS with block gas limit, forcibly sending ether to a contract, Deprecated/historical attacks and Call Depth Attack (deprecated).
Proffessionally, automated smart contract auditing tools can be used to secure smart contracts and find whether the contracts can accomplish business requirements. Developers also do manual testing to check that each function can manage overflow & underflow condition.
Automated review can allow for experienced penetration testing which helps find vulnerabilities rapidly. Some of the tools used include Manticore, Solium, Smart Check, Oyente and Slither. A manual code review is taken as king in the auditing of smart contracts where each line of code is analyzed for compilation and re-entrance mistakes and other security issues. Behavior of code is also double-checked against specifications. In addition, more than one auditor should review the code in the manual review.
Promoting your dApp
Github.com, Dapp.com, app.co, stateofthedapps.com, ieeedapps.net, dappbuilder.io, dappradar.com, dappradar.com, and other marketplaces or dApp directories are good places where you can submit your dApp and start to market it. Most have free listing. This is as much as announcing in popular crypto forums and using other social platforms at your disposal.
Bitcoin.org forum is also a popular place for project announcements as you might know as is https://forum.ethereum.org/, https://cryptocurrencytalk.com/- https://chaincodedevs.com/. Other channels include Reddit, Telegram, Discord, Steemit, Twitter, YouTube and Medium and any influencer network you might think of.
Marketing is a stategy too, we should say. You need to keep improving your products and thinking about every possible enablers and impediments to your dApp success; regulatory uncertainty; limited scalability; security, privacy & lack of awareness; and responding asap.
Finally, remember that development (which essentially means all the six things above) is a process if your dApp must keep on scaling and excelling in the marketplace and surviving market and economic and social movements.