We're Building a Multi-Language Blockchain That Supports Both JSON RPC and Binary Serialization

Written by andrarchy | Published 2020/12/18
Tech Story Tags: koinos | koin | blockchain | crypto | decentralization | smart-contracts | modular-blockchain-koinos | multi-language-blockchain

TLDRvia the TL;DR App

I’m Andrew Levine, the CEO of Koinos Group and below you will find the third episode of the Koinos Group podcast in which I explain Koinos-Types which is an important solution for adding multi-language support to Koinos.
At Koinos Group we’re developing the Koinos blockchain which will have free transfers, free accounts, and free smart contracts. These features, in combination with a number of technical innovations will make Koinos the first programmable blockchain with no barriers to entry and as a result we expect it to touch every corner of the technology space.
We’ll be using this podcast to share information about the project, interview members of the team, and interview people from other projects, not just in the blockchain space but in the tech space more generally because we’re building Koinos add value to any project regardless not just projects that want to bill themselves as decentralized or blockchain-powered.
To learn more about Koinos, head on over to koinos.io.

Multi-Language Support

At Koinos Group we are developer obsessed, which means that we want to build tools that developers love using to build amazing blockchain-based applications. That’s why we think it’s important for Koinos to have multi-language support. It should be fast and easy to create amazing client-libraries, microservices, and smart contracts in the programming languages developers already know and love, and it should also be just as easy to update them. Koinos-Types is key to accomplishing that goal.

Microservices

As I explained in our last post, our use of Go for microservices is just one example of why it is so valuable to have multiple language support on Koinos, not just for the microservices, but for smart contracts as well. Using Go is enabling us to build microservices better and faster than we would have had we been limited to C++ (the language we used to write the blockchain framework).
Different programming languages are better suited to different tasks. Multi-language support doesn’t just make the platform more accessible to a larger number of developers, it gives those developers more freedom to choose the right tool for the job so that their application can be more efficient, more secure, and more scalable. Koinos-Types are key to accomplishing this goal because they will allow us to add features to Koinos and then automagically update every supported client library and programming language instantly!
One of the consequences of a microservice architecture is that every service needs to communicate with one another … a lot. And now we have microservices that are written in two different languages; C++ and Go. So we needed a way of converting these communications into a common language that any microservice can “understand” which is where Koinos-Types comes in.

Koinos-Types

Koinos-Types is a cross-language serialization framework that supports both JSON RPC and binary serialization. It’s similar to Google’s ProtoBuffs except Koinos-Types always serializes data in the same way, which is a requirement for blockchain applications.
Koinos-Types allows programs written in different languages to talk to one another in a simple and unified way by giving them access to the same objects (the “building blocks” of modern programming languages). It’s also a lot higher-level than RLP (a similar solution for Ethereum), which should make it easier and faster to develop client libraries and keep those libraries up-to-date with any upstream changes.
Koinos-Types actually solves a number of problems. It helps us add multi-language support to Koinos more generally, it enables microservices to communicate with one another, and it makes it easier to develop and update client-libraries. Obviously when Koinos mainnet launches it won’t have all of the nifty tools that other blockchains have which is why it is critical to ensure that Koinos can acquire those tools at a more rapid rate so that it can not only catch up to older protocols, but ultimately outpace them. Koinos-Types are key to accomplishing that objective.

Smart Contracts

Best of all, this work serves double-duty since it is necessary for adding multi-language support for smart contracts as well. That means that we are that much closer to supporting smart contracts written in Go and languages similar to Go.
As you can see, building a next generation blockchain requires solving highly technical problems that few teams are even capable of assessing, let alone solving! It was only thanks to our first hand experience working on Steem (now Hive) and steemit, that we saw the importance of solving these specific problems, and the dividends such solutions will ultimately play.
If you’d like to learn more about Koinos, head on over to koinos.io and if you found this content interesting or informative, please follow and share. Thanks for your time!

My Socials

Koinos Network Socials

Koinos Group Socials


Written by andrarchy | CEO of Koinos Group, creators of the Koinos blockchain
Published by HackerNoon on 2020/12/18