Introduction to Tendermint

Tendermint a blockchain consensus engine

Introduction to Tendermint

What is Tendermint?

Tendermint is software for securely and consistently replicating an application on many machines.

To simply put Tendermint is a software which can be used to achieve Byzantine fault tolerance (BFT) in any distributed computing platforms. From managing infrastructure to designing a distributed database, we can use Tendermint.

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. Blockchain technology is just a reformalization of BFT in a more modern setting, with emphasis on peer-to-peer networking and cryptographic authentication. The name derives from the way transactions are batched in blocks, where each block contains a cryptographic hash of the previous one, forming a chain. In practice, the blockchain data structure actually optimizes BFT design. doc


How to write applications using Tendermint?

As you can read from the official docs, Tendermint will not handle your keys, encryption or business logic, just the consensus and that’s it.

Tendermint App Architecture

ABCI Design


The ABCI design has a few distinct components:

  • message protocol
    • pairs of request and response messages
    • consensus makes requests, application responds
    • defined using protobuf
  • server/client
    • consensus engine runs the client
    • application runs the server
    • two implementations:
      • async raw bytes
      • grpc
  • blockchain protocol
    • abci is connection oriented
    • Tendermint Core maintains three connections:
      • mempool connection: for checking if transactions should be relayed before they are committed. only uses CheckTx
      • query connection: for querying the application state. only uses Query and Info


  2. ABCI App
  3. Tendermint

Write a comment on Introduction to Tendermint