Latest news about Bitcoin and all cryptocurrencies. Your daily crypto news habit.
Modularity refers to a systemâs ability to be broken down into components which can be separated and recombined. The best software development tools are often highly modular, and allow the reuse of âassembliesâ or âmodulesâ. This principle is at the core of development frameworks like Java, C# and Go.
Modularity promotes innovation because new ideas become trivial to implement. When creating a new web app, the majority of the code running is really inside of externally-developed packages; whether they be database connections, page rendering engines, input validators etc. As such, itâs extremely easy for developers to spin up a prototype of a new website idea.
Enter: Crypto
However, if you were to go and look at the most prized crypto codebase of all, the Bitcoin Core repository, youâd notice that itâs extremely inflexible. Unmodular code is generally characterised by long files and classes, and individual implementations of classes often depend on other concrete implementations. For an example see Bitcoin Coreâs validation.cpp. This isnât just the case with Bitcoin Core. Most of the biggest blockchain node repositoriesâââanother example is Go Ethereum- are absolutely not built with flexibility in mind.
Now itâs important to note that in the case of Bitcoin, modularity isnât a priority. If you believe youâre building the singular âcurrencyâ of the future, why make it easier for others to build with your code? Bitcoin Core is highly integrated, but it has stood the test of time and it works. This is not a criticism of Bitcoin Coreâs codebase.
Experimenting with Blockchains
With blockchain being cited as the answer to everything, many projects are starting to experiment with different node implementations. Especially in the case of sensitive data and private chains, or cases where external data is core to a chainâs operation, projects are finding that a smart contract based approach does not allow them enough flexibility. Unfortunately until recently this has meant that in order to innovate, developers are pulling apart integrated nodes like Bitcoinâs, or starting new nodes from scratch.
Both of these avenues are painful, time-consuming, and error-prone (insecure).
This space is really going to thrive when a blockchain network with a completely new set of features can be spun up *clicks fingers* like that.
StratisâââA Modular Platform
The most exciting thing about Stratis for me is weâre thinking about building blockchains radically differently. Different consensus algorithms, smart contract executors, wallets, and two-way peg implementations are all features in the one codebase.
Currently you can runâââall from the one codebase:
- A Bitcoin (PoW)Â node
- A Stratis (PoS)Â node
- A Cirrus (PoA + smart contract) node.
Moreover, because of how flexible the node is, Iâm confident we could build out full node integrations for Bitcoin Cash, Gold, Private, Doge, Litecoin, etc. in days each. Down the road we could extend this to support even more chain types easily, after some foray into the account model and other features.
When building a new website in .NET Core, you can preload a template and adjust the components to your needs rapidly, punching out a new prototype web app in under a day. We hope that with Stratis developers will be able to do the same but for their own blockchain networks.
IFullNode node = new FullNodeBuilder()
.UseNodeSettings(nodeSettings)
.UseBlockStore()
.UseMempool()
.AddRPC()
.AddSmartContracts()
.UseCLRExecutor()
.UseApi()
.Build();
Isnât it beautiful? Our Full Node repo is here.
In Conclusion
Modularity == Innovation.
I donât think anyone is as far ahead as we are when it comes to a strong composable approach to building blockchain networks.
To find out more follow us on Twitter: https://twitter.com/stratisplatform
Or if you just want to wave: https://twitter.com/codingupastorm
The Importance of Modularity in a Blockchain Platform was originally published in Hacker Noon on Medium, where people are continuing the conversation by highlighting and responding to this story.
Disclaimer
The views and opinions expressed in this article are solely those of the authors and do not reflect the views of Bitcoin Insider. Every investment and trading move involves risk - this is especially true for cryptocurrencies given their volatility. We strongly advise our readers to conduct their own research when making a decision.