Let's say you find yourself or your company wanting to build custom blockchain, possibly with support for smart contracts or some less common consensus mechanism. Some questions you would ask yourself or others at this point usually are:
- Is the solution to build it from scratch?
- Can we just clone Bitcoin or some other blockchain code and begin from there?
- How do we create a team for this, we've never done any blockchain projects before?
- We want XYZ feature(s), can it be done in reasonable amount of time and within budget?
- Who do we contact for support, advice?
The answer to all of there really depends on your needs and constraints. From there you are to create requirements and define timeline of your project. Most of blockchain related projects can be done without carrying out complex operation of developing yet another blockchain but if for some reasons public main-nets don't satisfy your requirements like transaction throughput , confirmation time, compatibility with other chains, permissions etc ...
Is the solution to build it from scratch?
Yeah, sure. When we're at it, why not build custom programming language for smart contracts. Or reinvent consensus protocols. Or encryption standards. Or hot water. Don't get me wrong, I like ambitious people and teams, there would be no innovation if not for very brave and curious people and groups around the world . But if it's so you can say in your marketing message that you have reinvented the way things are working .. it might be effective marketing tool but it will burry you and your team in burden of doing hard things which are already done and you'll never see the project deployed successfully. You need very deep pockets and a lot of hard-to-find people on your team to get this properly done.
Frameworks(s) we are recommending are Tendermint and Cosmos SDK. Tendermint is consensus protocol built by top researchers and developers in blockchain space. It has been battle tested and used by many different companies and organizations including Binance, Hyperledger, Loomx etc...
Binance used it to create their Decentralized Exchange and issue BNB token. They have been able to complete this in several months and with far less resources as opposed to doing all this research, development and testing by themselves. This solves your core issues regarding efficient and secure consensus mechanism.
For the business logic, smart contract layer, permissions and many other non-core related things you can use modular Cosmos SDK. You have a lot of modules already available, for example for interoperability with Bitcoin, Ethereum and some other blockchains you can use IBC module for inter blockchain communications.
Inspired by Tendermint
There are some other similar software frameworks / protocols inspired by or built on top of Tendermint like Polkadot which is similar to IBC, protocol for inter blockchain communication.
If you are in enterprise or corporate environment then you might find Hyperledger Burrow which is built on tendermint but uses SQL like queries to search for data in chain. Hyperledger foundation is other great place too look when choosing blockchain framework. It is managed by Linux foundation and includes many other companies like IBM, Intel, SAP, J.P.Morgan etc.
Who do we contact for support, advice?
For many other questions that you might have please feel free to leave them in comments or reach out to us.
Author: Sulejman Sarajlija
Blockchain Developer and Researcher
Photo by D'Vaughn Bell from Pexels