DEV Community

Yi Zhang
Yi Zhang

Posted on

Dig into the codebase of Tendermint and Cosmos SDK

Last year I worked on a project which required to convert Tendermint/Cosmos SDK into a network which could run multiple chains concurrently. We all know it's common for one blockchain to run on a set of nodes in one network. For cloud providers, each time when they create a new chain for a user (maybe a corporate or a small startup), they need at least 4 new nodes to form a basic Byzantine fault tolerance network. For some small startups, the cost is a bit significant. If multiple chains can share the same network/nodes before they start to have much traffic, it'll be a big win for both cloud providers and the users.

This project required a deep understanding and familiarity in the codebase of Tendermint and Cosmos SDK. To facilitate the process of learning the codebase, I've made lots of notes. Today I planed to share them in a series of posts here in dev dot to.

  1. How tendermint p2p nodes receive messages

  2. Tendermint p2p reactor types

  3. How tendermint consensus timeout ticker works


Notes:

  1. The code samples of tendermint in the above posts are from version v0.34.19
  2. The code samples of cosmos-sdk in the above posts are from version v0.45.3

Top comments (0)