Struggling to build the best cryptocurrency wallet

We’ve asked OWNR’s CTO, Sergey Burmisov, about building a career in blockchain and problems of developing a cryptocurrency app

Published in
3 min readNov 25, 2019

--

Sergey has 13+ years of experience in fullstack development and engineering management, more than 3 of them being actively involved in blockchain-based projects

We can’t omit the favorite part of most AMAs the ‘How did you get into blockchain’ question

The first time I’ve heard about Bitcoin was in 2009. It’d slipped my mind till 2014 when a friend told me about blockchain-based authorization of IoT devices. But it was only in 2016 when I got really hooked. All Bitcoin stuff was surrounded with great hype at that time. I took a plunge and studied all the ins and outs. Soon my friends invited me to work for a small project, and I learned everything about mining there. Later on, I came across a local company producing mining equipment. The bitcoin price was outrageous, and they shrugged off equipment going off here and there. But in 2017 the rate went down, and they faced the necessity of introducing some monitoring system. I helped with developing one.
I ran into OWNR at the time when it was at its ‘proof-of-concept’ stage. I had harbored the thought of finding a job in crypto before, but didn’t really give it a go. This time I was in.

Which problems of the development does the team face?

Well, we started with Bitcoin and Bitcoin-like assets. We refused to use any third-party services in order to protect our customers’ funds. Instead we chose to work directly with the basic level — blockchain nodes. It’s cool for security, but there are some problems. A Bitcoin node as such wasn’t initially devised to serve numerous simultaneous requests, which is the case of a cryptowallet with thousands of users. For example, you can request a balance for an address in your wallet within this node, but not a random address in Bitcoin blockchain. The number of simultaneous requests to nodes is limited. This puts certain restrictions on scalability. Another problem is the format of the data received…

What about other crypto services? How do they handle it?

The easiest way is to work with the simplest requests to a bitcoin node. Like requesting the data about blocks. Once they have the data (rather raw data, I have to say), they can put it to the database where the requests needed are actually processed. And even such a simplified procedure isn’t that simple: you’ve got to deal with orphans. Initial synchronization would be a challenge, too: you’ll have to process more than 600K blocks. Even after you have the initial synchronization done, you’ll be doing it anew every time you’ve made some amendments to the process. We’ve done it dozens of times. It takes a lot of time and calls for the efforts of a whole team: developers, database administrators, infrastructure specialists.

Ethereum and ETH-based coins looked less formidable at the beginning. But we soon realized there were problems too, just ones of a different kind. For example, parsing the data about smart contracts and transactions within these contracts.

In case of both Bitcoin and Ethereum blockchains, there’s literally nothing you can find on the web. You can’t just refer to some blockchain explorer for solution. Most likely, the teams behind explorers have faced the same edge cases, and sometimes they have chosen to cut corners and not to address them. We sometimes feel like we are all alone in the universe while dealing with such grey areas 😊

--

--