Electric-Coin-Company / tfl-book

A Trailing Finality Layer book for a proposed Zcash protocol change.
MIT License
5 stars 2 forks source link

Adapt CometBFT (formerly TendermintBFT) into Crosslink #70

Open nathan-at-least opened 11 months ago

nathan-at-least commented 11 months ago

Suggested Improvement

Crosslink is currently designed including adaptation considerations for Streamlet BFT which is a good starting point due to the latter's simplicity.

When considering "time-to-market", TendermintBFT[^1] is a strong candidate, so let's see what adapting it looks like.

Note: We may also prefer other BFT protocols with nicer properties, but they may also require longer development times.

[^1]: I've heard of CometBFT and haven't learned yet if this is a code/sdk/implementation fork or a distinct consensus protocol. We should determine the relative support and qualities of the distinct codebases and/or protocols for this ticket.

nathan-at-least commented 10 months ago

I've just skimmed https://docs.cometbft.com/v0.34/introduction/what-is-cometbft but it sounds as if CometBFT is a new software platform that uses TendermintBFT protocol.

At the same time, I'm not 100% certain there aren't substantive protocol changes in CometBFT. The Consensus section spells out consensus and I haven't yet read it to try to do a mental diff from my (lossily compressed) understanding of TendermintBFT.

nathan-at-least commented 10 months ago

Explanation of title rename: https://github.com/Electric-Coin-Company/tfl-book/issues/5#issuecomment-1806350380

adizere commented 2 weeks ago

A bit late here, hoping these thoughts are relevant nonetheless:

CometBFT v0.34 is identical to Tendermint v0.34 in all respects. You can deploy in the same network two validators, one running the former software and one running the latter, and the validators will be able to build blocks (we tested this pattern specifically).

CometBFT 0.37 and 0.38 introduces a very important API upgrade called ABCI v2. The upgrade is split across two releases to make the rolling out phase less risky (i.e., introduce two smaller changes instead of one big change at once). ABCI v2 is interesting in its own right, with some intro content here and here.

CometBFT v1 is about to be released and introduce one additional upgrade, called Proposer based timestamps.

There are no substantive protocol changes in CometBFT in the releases I described above. The upgrades do introduce additional features, but the consensus algorithm at the heart of CometBFT is still Tendermint, a responsive, deterministic BFT consensus algorithm. The Comet team at Informal is also in the process of establishing the EOL and LTS support policy for Comet.