How to Build a Decentralized App (DApp) on EOS
How to Build a Decentralized App (DApp) on EOS
EOS is a blockchain-based operating system, customized to the development, deployment and launch of decentralized applications (DApps). The project collected a record 4 billion dollars during the initial supply of coins and entered the top 5 cryptocurrency by capitalization.
The EOS ecosystem is faster, simpler and more convenient than Ethereum, and therefore more suitable for the development of DApp. Today we will look at three approaches to creating applications for this network, denoting nuances, pluses with minuses and an estimated cost of each.
Templates are ready-to-run applications or computer code modules with which, like LEGO, you can build ready-made applications. They are created by blockchain developers, large companies or private enthusiasts to simplify, speed up and reduce the cost of the process.
Development of DApp using templates can be compared to creating websites on the WordPress designer: download the main platform engine (blockchain or WordPress), choose a template (applications or website themes), install it and customize it. However, in the case of creating websites, everything is much simpler, since this service has been available on the market for many years. While EOS was launched only in July 2018, therefore its infrastructure is not so developed.
At the time of this writing (January 2019), templates for EOS applications can be found on Developers.eos.io, GitHub.com, Bitcointalk.org, and other sites targeted at blockchain developers. At the same time, we can expect that in the future they will appear on Microsoft Azure and Amazon Web Services.
Subcontract development transfer is the best option if you need to get a guaranteed result in a short time for minimum money. An outsourcing company will take care of all the troubles, including most of the organizational issues. For the customer remains a general control (administrative and financial), as well as the selection of tasks and goals.
Search for an executive company
You can find the right company on social networks Facebook, Twitter, Google+, StackExchange and Bitcointalk, as well as on specialized sites:
- LinkedIn. The most popular platform for the formation of business contacts. Create an account and use LinkedIn Recruiter and Groups services to search for DApp-developers. Recruiter service is paid, but there is a trial version.
- Goodfirms.co и Clutch.co. Sites where companies post information about their services. You can find the right artists using filters.
- Blocktribe.com. Platform with information about blockchain developers - companies and private programmers. Brief description, specialization and contact details provided.
- Upwork. Freelance platform for programmers, working since 2003. Both companies and private specialists are represented.
- Toptal. Another freelance platform where candidates can be tested, invited for an interview and given a mockup task.
- You can also search at Crypto.jobs Codementor.io, Beincrypto.com, Blocktribe.com, Xbtfreelancer.com, Coinality and BountyOne.
The Meetup.com and special CoinDesk section have information about upcoming conferences, lectures, seminars and other events related to the blockchain. Representatives of blockchain technology companies often participate as invited experts.
Selection of candidates
- Portfolio. A detailed study of use cases - what tasks were assigned to the candidate and what finally happened. If you can, test the application yourself from use case. Pay attention to performance, design, usability and user feedback
- Informational trail. Check out what is written about companies on the Internet. Have they been mentioned in the news, in what capacity? What previous customers, users and regulators say.
- Cost of services. The price should not be lower than on Ethereum. In addition, it is important when companies are ready to give a price. A good developer first studies the problem and only after that announces the cost.
- Geography. For communication, it is better than you are in the same or adjacent time zones and speaks the same language. It is possible to cooperate with developers in Eastern Europe, Asia, and Africa, but you need to make sure that the employees of the development company (management and programmers) speak good English.
- Legality. The subcontractor must be duly registered and work through normal banks, not offshore zones. This point can be checked at WebChecker, BBB.com, GlassDoor, and fiscal services sites.
Talking with the best candidates should be via video. So you can evaluate the interlocutor and ask him to conduct a video tour. This will give more information about the candidate. Do not forget to request data on the park of devices.
1. The executing company makes an assessment of the order and a preliminary sketch of the upcoming work. This allows you to estimate the time and cost of development.
2. The customer and the contractor define the key requirements for DApp and create a diagram of product use scenarios. A user interest diagram is created.
3. A screen map with UI / UX specification is created. Choose a design style, colors and so on.
4. Programmers create MVP or alpha version of the application.
5. Testing of the performance, productivity, stability, and usability of the product created in the previous step. Based on the verification, the application is refined and improved until the customer and the contractor agrees that the application is ready for launch.
6. Dapp deploying and its launch. Usually, the product is first offered to be sold to a small number of users (early launch). The early startup is needed to test the product and minimize risks.
7. Accompaniment and technical support of the project. Correction of missed errors and adding new features, tools.
A team of programmers on staff
By hiring a team of programmers in the state, the company gets full control over the development and provides maximum security and privacy. This gives many advantages and allows you to preserve secrecy, but at the same time creates many challenges: programmers need to find, create a team of them, organize the work, find suitable premises for them and buy equipment.
The main problem of this approach is that programmers have to be found in one urban agglomeration. This is problematic because there are a few good programmers. Those who understand the blockchain are even fewer, and there are few who are familiar with EOS. And usually, they already work for someone.
This approach requires programming skills and a deep understanding of blockchain technologies. If it is, you can use the documentation on the EOSIO Developer Portal and GitHub.com to learn how to create a DApp yourself. It will take some time, but it does not need to pay anyone and no one will breathe down your neck.
To develop an EOS blockchain-based Dapps, you need to understand the principles of the blockchain system and explore a number of tools (eosiocpp, cleos, keosd, nodeos). The official guide from the creators of cryptocurrency will help with this. It is quite simple and contains links to the necessary software: Amazon AWS instances, Docker, Compile. Instructions for these tools can also be found in the guide.
EOS blockchain and DApp development tools can be installed and run only under Linux and Mac OS operating systems. In the Windows environment, they do not work, but you can create a Linux sandbox and work in it. Editors and IDEs can be Eclipse, Atom Editor, Visual Studio Code, Sublime Text and CLion.
In the Ethereum network, the cost of the transaction and database storage is lied with the users: people pay money in the form of "gas" when they want to initiate a smart contract and DApp. There are no commissions in the EOS ecosystem. For processing and storage of transactions developers pay. They rent node resources to initialize smart contracts and deploy applications.
The project team promises to reduce the cost of blockchain network and processor resources, but so far this is the case. This should be considered when developing applications for EOS.
The cost of the development of DApp on EOS is approximately:
- with a simple smart contract - from $500 to $2,000;
- with a complicated smart contract (guarantor, entering data into external registries) - up to $5,000;
- an application with advanced smart contracts - up to $10,000;
- game on EOS – from $10,000 to $300,000;
- wallet for EOS - up to $10,000;
- messenger - from $10,000.
When creating a DApp by a regular team of programmers, you need to focus on the hourly rate. In the United States and Western Europe, it is around $ 100/h, Eastern Europe - from $40 to $70/h, India - $40–50/h, Africa - $20–40/h.
According to the CoinDesk analysis, blockchain applications created in 2018 have either tens of thousands of daily users, or no one is interested at all. This, to put it mildly, is a dismal result, considering the whole hype around cryptocurrency and blockchain.
Yin Wu, founder of the Dirt Protocol, believes that the reason for the failure is an inefficient development process. Instead of working in a low-risk environment that supports iteration and training, startups try to sell the product to the world. Moreover, they do not even sell the product itself, but its idea, which will be implemented in the future.
This approach creates three problems:
1. To please the community, projects follow the call of the crowd and build a design based on false dogma: “Decentralization is the answer” (and not a means to achieve the goal).
2. Developers listen to the advice of well-known personalities in the community and, as a result, make non-optimal decisions.
3. Focusing on the ideas and theories of the market, projects carry out white paper, as if this is a plan for the final product, and not the starting point for its creation.
All this leads to the fact that the created DApps have almost zero chances of success or at least payback. And to change this, Yin Wu proposes to change the approach to development.
Create a product, not a protocol or philosophy
Practice shows that you can not succeed in the mass market, confessing only one philosophy. Open source projects as an alternative to closed centralized networks are not new. Just look at the standoff Diaspora vs Facebook, DuckDuckGo vs Google, Mastodon vs Twitter.
Openness and decentralization are important only for developers and lovers of conspiracy theories. Users need a solution to the problem and low cost.
Don't let users tell you what to do
All Apple product launches met the same media reaction: too expensive to succeed. Facebook launched the news feed, despite the extremely negative public response. Netflix switched over to streaming and lost over a million customers in transition period.
These examples confirm the simple rule: “Do not give your users what they ask for, give them what they want”.
Focus on the iteration on the idea
In the blockchain community, there is an misconception that an idea is the most important part of success. Instead of running projects and improving them based on user feedback, teams iterate separately and ignore customer feedback.
In the future, projects should be smaller and run earlier. You need to put the product on the market for a small group of users, test, get feedback and improve it. And then repeat the process again and again. Delay in entering the market is like death.
Blockchain-based digital asset platform