Skip to content

Instantly share code, notes, and snippets.

@otrack
Last active January 31, 2024 18:07
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save otrack/d50e9fb972e6458e140e17df57ed3780 to your computer and use it in GitHub Desktop.
Save otrack/d50e9fb972e6458e140e17df57ed3780 to your computer and use it in GitHub Desktop.

Investigating stake-based dissemination in CometBFT

Context

Blockchain is a decade-old technology to construct decentralized trusted storage and applications. At core, this technology relies on replication protocols that connect hundreds to thousands of geo-distributed processes. Participating processes disseminate transactions (such as operations of a smart contract) across the system. They also continously agree on the next block of transactions to add to the chain. At each process, transactions in the chain are executed in order against a local copy of the application.

CometBFT [a,b] is the replication protocol of Cosmos, one of the leading ecosystems for blockchain. To disseminate a transaction, CometBFT uses a gossip mechanism similar to the one in Ethereum. At frequent time, each process contacts its neighbors in the system and push them newly-received transactions. Gossip is robust to malicious, aka. Byzantine, processes. However, it is also expensive because a process may receive multiple times the same transaction.

Objectives

The goal of this project is to cut the bandwidth cost of CometBFT. To this end, we propose to design a new efficient protocol to disseminate transactions. Our angle of attack is to rely on the stakes of the protocol participants, that is the amount of applicative asset each participant holds. The protocol has two phases. In the first phase, it uses a push mechanism similar to gossip. This phase stops once a certain (tunable) threshold of stake is reached. The second phase is pull-based and asynchronous. During this phase, each process that missed a transaction in the chain inquiries its neighbors to fetch it.

A tentative roadmap for this project is as follows:

  • Design the stake-based dissemination algorithm with pen and paper.
  • Implement it in the CometBFT code base [c].
  • Compare the proposed approach against the vanilla dissemination algorithm using the E2E benchmark.

If time allows, this work will be extended to introudce stake-based quorums in the agreement module of CometBFT [d,e].

Contact

Prof. Pierre Sutra
IP Paris - TSP


[a] CometBFT was formelly called Tindermint
[b] Gossip Consensus, Daniel Cason et al., Middleware 2021.
[c] https://github.com/cometbft/cometbft
[d] The latest gossip on BFT consensus, Ethan Buchman et al., arxiv 2018.
[e] Weighted voting for replicated data, D. K. Gifford, SOSP 1979.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment