Spotcoin’s Crypto Priest: developing NEO Sharp

Spotcoin loves NEO #3: final interview with Joshua Chen

In our final installment in the three-part series about Spotcoin’s “Crypto Priest,” Joshua Chen shares a technical look at the NEO Sharp Project, his role, and the cutting-edge technologies that are driving future devielopment.

The explosion of blockchain users, developers, and community required a forward-thinking analysis of the ecosystem. City of Zion’s “April Report” detailed the overarching goal to develop “the specification and implementation of a new standard” with the needs of a growing community in mind. Central to the project are testing, modular functionality and development of an “initial fully compatible version and a new experimental high-performance module for each component.”

As NEO pushes forward with its goal of 100,000 Transactions Per Second by 2020, the project is building a faster, responsive infrastructure with new technologies, like REDIS Streams, to support new traffic, developers, and end-users.

Josh has been knee-deep in the project, working with NEO, City of Zion, and an international team of seven members to develop core functionality for the NEO Blockchain in C#. Below is the final part of the interview where Josh explores development, new technology, and the benefits of NEO Sharp for everyone involved.

SC: For people who are interested in blockchain technology but are not developers, what are the benefits of this project?

JC: I would say it’s not very visible to the end user. We are the plumbers and the electrician contractors. We go behind the scenes and rip out the old plumbing or old wiring and revamp it. As more and more people begin using NEO, more and more people will try to make transactions, and we want to build the infrastructure to support all that is coming. We don’t know who’s going to plug in. We don’t know if it’ll be a big server that’ll plug into this “electrical grid.” We don’t know what it’ll be. It’s not going to be steady power flow. There might be spikes. That’s what this NEO Sharp project is there for.

What they will see is that as NEO grows bigger and there are more transactions on the web, the NEO blockchain will degrade less often and less severe and changes can be made more quickly to address particular issues that can and will come up.

We can’t anticipate everything. We are building a platform that allows for smart contracts to happen. We don’t know what applications will be built on top of this. What we want to do is create the infrastructure that is able to handle the transaction amounts; to make it easier to make changes; to fix it; to test it; and to ensure bugs don’t get into the system.

SC: I like that you said you are the plumbers and the electricians. We don’t see what you guys are doing but we get the benefit from it.

JC: Right. You’ll know it when we do a bad job. We want it to be a pleasant experience. For those developing apps, and those running apps. Ultimately, the way people will see the benefits are better scalability and quicker turnaround times to fix bugs and issues.

SC: So, looking ahead, you don’t know every iteration, but you are planning for the changes. How will it be easier for developers?

JC: Sometimes people will write an app and it will expose a flaw in the consensus mechanism implementation. Or maybe cause a major performance impact. How do we go about fixing that? How do we isolate the problem and fix the issue rather than the symptom? How do we have good tests so it doesn’t happen in the first place?

The goal is to allow for people to come in and not have to know the whole rigmarole. You can just hire a handyman to fix just a part. So, we want to make it more accessible for others. So, there are diagrams to make sense from a developer’s perspective.

We ask ourselves: Why are we doing logging here or testing there? Right now, the network is all together. We’re breaking things apart, functionality-wise, to make more sense. We are building diagrams to help developers understand. We are documenting the code so that developers understand why we are doing things this way. We’re trying to build it to make it better, so we’re positioned for the future.

SC: There are developers out there who might be very interested in knowing why you chose your methods and materials. If there are developers out there who might be interested in using NEO sharp in the future, what would you want to share with them?

JC: We’re implementing our blockchain cache using REDIS Streams. REDIS is actually a database. It’s fairly easy to use and lightweight. One of the new features NEO are using is Streams. It’s in beta. It came out only a couple of months ago. We wanted to implement this because we wanted to make it faster.

We have made the persistence layer modular, so as new versions of databases come in, or if there is a new database that is invented that could reduce seek times, we can create an implementation of that and plug it in easily. Right now, we are doing that with REDIS Streams. REDIS itself is not a brand-new database, but its Streams feature is and it has some interesting properties that we want to try to implement and evaluate.

SC: How so?

So, there’s terms developers use called the Big O notation, which denotes how efficient an algorithm is. There’s O(1) which means that based on the number of elements, it takes one step to complete the algorithm. This would be amazing. It would mean that if you had a million books, you would only have to take one step and you would find it. Practically, this doesn’t happen. If it is O(n²), that would be for three elements, it would take nine steps and four elements would take 16 steps. That’s bad. REDIS Streams are O(log n) which is pretty good, so we want to try and implement this and see how it will work under load testing.

For those who aren’t developers: Imagine you have a filing cabinet and you have a lot of files and you need to find one. The more files you have, the longer it takes you to find it. A lot of implementations say “do that” and as it gets bigger you have to look through the whole thing, find it, and then get it back. Big O notation is just a way to describe how complex your searching method is.

As the blockchain becomes more complex, they’re looking at not just a database that’s fast but a database that grows the speed of retrieval and doesn’t deteriorate as quickly. We think, in 20 years, the blockchain is going to be ginormous, so how do you go about searching?

Being able to plug-in REDIS Streams, which promises a much slower slope of degradation, and much lower increase of read times or file searches is the primary thing. That’s one of the things we are doing now is implementing this for C# as there isn’t a implementation in C# for it because it is so new.

SC: It’s like computer class crash course.

JC: Yeah. That’s one of the really neat things. Even now, NEO is looking at how we do consensus. Which is, “How do we agree that this transaction is valid?”

There are lots of different ways to do it. So, we’re looking at: what if we change it? How do we make it modular? How can we plug in and plug out?

We haven’t come up with a solution, but that’s the kind of stuff we are working on. It’s exciting.

SC: So that’s something you are just now starting to talk about it. That’s something that would be very interesting for people because it has applicability to the whole process.

JC: Yeah. All this stuff is toward the entire blockchain. I’m here to give back to the community because the community has given us so much.

SC: Is there a provisional timeline? Any idea when NEO Sharp may launch?

JC: They would like to have a MVP in July, but we will see how that works out.

SC: Thank you for all your time and insight.

If you want to read more about Spotcoin, our upcoming ICO and where our dividends will come from, check out the other Spotcoin articles. We publish almost every day. Or sign up for our email news letters, including our Weekly Roundup, on https://https://spotcoin.com/register.