Tendermint! What in Tarnation is That!?

Spearmint, Peppermint, Tendermint…

Now folks, we here at Bearmint don’t beat around the bush. No siree Bob, much like Buckley, we pride ourselves on shootin’ straight and tellin’ you everythin’ you need to know about the perils and wonders of the digital Wild West! Over and over again you’ve seen it written…perhaps you’ve even uttered the word in a hushed whisper to yerself, scratched yer head and thought ‘Nope, ain’t got a clue what these varmints it talkin’ about!’ Well we don’t blame ya, not even a little bitty bit…

Truth is, this ain’t no secret herb or mystery flavor of chewin’ gum. Indeed, you could go so far as to say that Tendermint is the very fulcrum upon which Bearmint rests! Why it’s the foundations for our courthouse, the key to our safe, the oasis in the desert…uh, well, I think you get the point.

Metaphors and hyperbole aside, Tendermint is real important. It’s the powerhouse behind Bearmint and enables Buckley’s glorious operation to go off without a hitch. Now we certainly don’t expect you to be an expert in the field of blockchain, but a fundamental understandin’ of this staggeringly effective technology will certainly position you to gain a better idea of what we here at Bearmint are attemptin’ to achieve. So without further ado…let’s get into it!

So What’s All This Talk About ‘Tendermint’ Then?

Tendermint is software that securely and consistently replicates an application on many machines (also referred to as a blockchain consensus engine). By securely, we mean that Tendermint works even if up to one-third of machines fail in arbitrary ways. By consistently, we mean that every non-faulty machine sees the same transaction log and computes the exact same state.

Secure and consistent replication is a fundamental problem in distributed systems - it plays a critical role in the fault tolerance of a broad range of applications - from currencies and elections to infrastructure orchestration and beyond, fault tolerance is absolutely crucial for the sustained success and longevity of distributed systems.

The ability to tolerate machines failing in arbitrary ways (including becoming malicious) is known as Byzantine fault tolerance (BFT). The theory of BFT is decades old, but software implementations have only became popular recently, due largely to the success of ‘blockchain technology’ like Bitcoin and Ethereum.

What differentiates Tendermint from Bitcoin and Ethereum is that it’s just a consensus protocol - in other words, it’s not a full-blown blockchain that you magically deploy and have full functionality with all the bells and whistles. Now this might sound like a bad thing as well as a bunch of extra work at face-value, but…well, for now, bear with us as we dive deeper into the benefits of this approach in the coming weeks. We promise it’s worth the wait!

The long and short of it is, Tendermint is a blockchain, but it doesn’t include any transactions. Wait a gosh darn second…a blockchain that can’t do nothin’? Why that sounds absurd don’t it? Well, keep readin’ and you’ll see why this whole concept isn’t really ridiculous at all…

Why the Ruckus?

Tendermint is a BFT consensus protocol designed with the express purpose of being easy to understand and use, highly performant, and useful across a wide variety of distributed applications. It’s these traits that drew us to Tendermint, and well, the result is a great success that enables lean architecture and watertight security. You might’ve also noticed that we share the same goals as Tendermint - yes sir, we also aim for ease-of-use, simplicity, high performance and utility across a wide range of distributed applications. We love Tendermint’s philosophy and have thus replicated and expanded on it where we feel we could.

When we initially set out to build Bearmint (after having worked on ARK Core for many years) our main concern focused on how we could preserve all of the modularity when moving to any other system or making bigger changes to our consensus mechanism since everything is intertwined with it in one way or another, no matter how small a given functionality is.

The bigger the change, the more difficulties you will face - sadly this is only amplified by the age of the software in question. This is precisely why we went through several Proofs-of-Concept before finally arriving at the foundation we’re building on today thanks to Tendermint’s design.

All in all, Tendermint gives us the best of both worlds - yes indeed, we’re able to include industry-leading consensus while also preserving the high degree of modularity that allows us to function as a plug-n-play blockchain solution - moreover, we’re able to meet needs of all sizes without having to make any compromises.

Needless to say, we’re more than excited for what this will allow us to achieve and sincerely hope you’ll join us on this epic journey!

So How’s All This Workin’ Out?

Tendermint’s design allows it to handle all P2P communication, block production, block finalization and replaying of historical blocks. What you as a developer are responsible for is handling everything between a block being proposed and accepted, after which it will be committed and finalized.

Now exactly what the ‘everything between’ is varies on your use-case, but on a higher-level, this will entail the processing of transactions in order to mutate application state (this state generally relates to accounts where you increase or decrease balances, attach collectibles like NFTs or even create MuSig wallets).

This is where Bearmint comes in and makes your life much easier - by using Bearmint, you have all of the power of Tendermint at the tip of your fingers through TypeScript! As an added bonus, if you’re familiar with tools like ARK Core, then you’ll feel right at home…

All of this might sound fairly abstract right now, but as we progress through our series of deep dives into the technical aspects of Bearmint, we’ll provide some more insights into how it works from a technical point of view and how it is integrated into Bearmint. Oh, and of course, it’s fully modular! Yippee-ki-yay!

In closing, we’re more than pleased with how things are shaping up - more importantly, we finally have the knowledge, drive and direction to confidently claim that we have the best available solution when it comes to modular blockchains! We sure hope you stick around for this journey and that you get to feast your peepers on what Bearmint brings to the table once it’s finally ready for release. Yee-haw!