Welcome to the new Bearmint Investigation Series. As we near the public release, this extensive series will dive into the brand new ARK framework and consensus called Bearmint while breaking it down as simply as we can.
In our last episode, we covered what Bearmint is, in this episode we’ll cover the reason for this monumental endeavor and go over some of the history of ARK’s past upgrades.
A Push For A Better Solution
ARK has had many Core upgrades and complete rewrites since the Mainnet launch in March of 2017. At the time of launch, development was just coming off of a successful public testing campaign. But shortly after, the team realized the codebase needed serious work. This, Core v1, lacked modularity, modern features and proper syntax. It meant testing was an extremely difficult and extensive task.
This led to the dev team needing to test in production with a mock-up instance of the entire network. Every single change in the code needed a manual verification of the entire codebase and network. This was an extremely difficult hurdle for new developers to understand and get up to speed with. This added months and months to any release or update schedules as well.
This unfortunate time consuming issue turned into a sort of domino effect. Once identified, the dev team got to work on the long process of attempting to right the issues. This in itself became a monumental and time consuming task. This work continued for quite sometime and eventually into Core v2, which included a rewrite from Javascript to Typescript programming language.
Even into Core v3, issues persisted and the team continued to work on fixing things as best they could. Although all of the previous work and upgrades made things much easier to work with, there was still clear limitations and functionality missing. This long process and constant fighting with the codebase was very difficult on the dev team and led many to move onto other passions with a feeling of defeat. This is where the team knew that it could no longer continue wasting time band-aiding the codebase and it needed to be done right.
The team internally weighed every option possible, including continuing with the current core. But, at the end of the day, the answer was clear. To move forward and get back to speed with the rest of the industry, the current codebase was just not going to make it.
What Is Tendermint And Why Use It?
Tendermint is a consensus engine that is Byzantine Fault Tolerant. As we discussed in the previous blog post, finality is a major factor in blockchain security. Finalizing transactions to prevent replays, rollbacks or malicious behavior is very necessary in distributed ledger systems. Tendermint allows for this finality.
The ARK and Basecode teams investigated many options before deciding on Tendermint. They knew that they wanted to preserve all of the modularity that ARK currently had when moving to another system. Making big changes to the consensus mechanism is no small task. Everything is intertwined with it in one way or another.
To quote the Basecode team: “The bigger the change, the more difficulties you will face - sadly this is only amplified by the age of the software in question.”
Tendermint is an established consensus tool with many years of real world testing and it preexists many blockchains. The team knew that after several Proof-of-Concepts and extensive research, Tendermint allowed them to retain all of ARK’s modularity. Keeping ARK basically a plug and play blockchain, without the need to completely create a brand new consensus engine from scratch.
Conclusion
Of course this is just a broad overview of the lifespan of the ARK Core codebase and why the team chose this path forward. The technical hurdles and security issues that were tackled over the years could fill a book, but we are aiming to make this series quick and easy to understand.
The new framework is now well into development and we are nearing the public testing event. This new release includes everything you know and love about ARK and will have full functionality with ARK Vault(ARK’s new official wallets) and ARK Scan(ARK’s official blockchain explorer) when released. But, Bearmint won’t be stopping at just a simple rewrite of the old codebase, it is a completely new beast. It includes new features and functionality that anyone familiar with the current industry standards will be somewhat familiar with themselves.
This is episode 2 of our extensive blog overview, with many more to come. Stay tuned for more from this series as we get closer to the Bearmint public testing release. Be sure to subscribe to our blog and follow us on social media to stay up to date, and don’t forget to jump into the conversation on the ARK Community Discord as well.