For tomorrow’s leading dapps to utilize blockchain within their development stack, developers need the tools and information-access that they are used to having when developing for the web. dfuse is speaking with experienced blockchain developers to help share their journey, the tools they use, and the sources of knowledge they turn to. This week we spoke with Dimitri Nikolaros from bountyblok.io.
Could you introduce yourself?
My name is Dimitri Nikolaros and I am the co-Founder of inlineFX, a software consultancy located in Montreal, Canada. After studying Computer Engineering at Concordia University, I started working as a software developer at stocktrak.com, a leading web-based, stock-market simulator with a global customer base. Within 3 years, I moved up to become team-leader. At stocktrak, I learned about building large-scale, enterprise-grade applications that can service thousands of daily users. The challenge of handling a large volume of transactions from different data sources such as various external market data providers was a great training ground to learn about sound fundamental software development practices. In 2013, I started inlineFX to partner up with entrepreneurs that want to bring their ideas to life. I’ve been involved with EOS blockchain development since the beginning of 2019 and am fascinated by the ecosystem and the opportunities it provides.
Could you present the vision of bountyblok?
bountyblok.io is a gamification platform used by third-party applications to create challenges and tasks that can easily integrate with their existing product. Implementing gaming mechanics into applications can highly motivate and promote user engagement. Engaging users on a constant basis is key for applications to not only maintain, but grow their user base and also their revenues. By defining clear tasks and goals and properly tracking the progress, users are incentivized to keep coming back and earn more points, rewards, badges, rankings, and sometimes even money. For example, an “onboarding” challenge may consist of 3 separate tasks: prompt the user to register, upload a profile picture and invite 3 friends – each task and progress will be tracked by bountyblok.io and the application can be notified when the challenge has been completed. Instead of storing users’ actions in a traditional database, where data loss or manipulation can occur without recourse for the user, bountyblok.io chose to store each user’s actions on the public EOS blockchain to provide transparency and immutability. Users can feel confident that once they have completed a challenge or task and have earned a reward, the transaction is recorded on the blockchain permanently as indisputable proof that it has occurred.
What are the main challenges when developing on a blockchain?
Developing on the EOS blockchain means putting great trust into an external platform. bountyblok.io relies on the blockchain to be performant, fully operational, flexible and secure. We found the integration with the blockchain to be fast and safe as transactions are inserted without fail or delay. However, since EOS is a relatively new platform, its C++ language construct was meant to write simple smart contracts and not yet at the level to handle more complex business logic and computations. In addition, the cost of storing data inside EOS tables fluctuate greatly depending on the price of RAM on the EOS network. As such, we built our business logic tier on our own platform with our own database and rely on the EOS blockchain only to store records of users’ transactions. Finally, the EOS communication is natively one-directional from the client so we use a 3rd party product called dfuse to obtain push information from the blockchain which allows us to provide real time feedback to our users.
Will it be obvious to a user that they are on a blockchain?
Since bountyblok.io is a backend-only SaaS platform, we do not have a UI in the traditional sense. We provide a web interface for application developers to manage their account. Applications that use bountyblok.io are aware that their user transaction data will be stored on the EOS blockchain and may view transactions directly on the blockchain via our admin tool.
What advice would you give to a developer who wants to build a project on blockchain?
Our technology stack consists of the “ionic” or “react” framework to build cross-platform mobile applications, ASP.NET/MVC/C# for middle-tier business logic layer and traditional databases such as SQL Server or MongoDB for storage. We mainly use the block.one-provided set of tools and API to interact with the EOS blockchain and have also found the content and contacts at dfuse to be an extremely valuable source of information and insight.
We are always looking to speak with EOSIO developers from around the ecosystem. If you are a developer and want to share your experience of building on the blockchain, please feel free to contact us. We would be happy to integrate your interview to our series "In the Eyes of a Blockchain Developer".