Informal Systems

2024-02-08

CometBFT Engineering Update — January 2024

Andy Nogueira • 2024-02-08

Welcome to the January 2024 update from the CometBFT team at Informal Systems. We'll share our team's latest developments and progress in this update.

During January 2024, our team continued to focus on completing tasks required for the upcoming CometBFT v1 release.

We also continued our efforts to optimize storage and worked on issues to reduce technical debt and fix some bugs.

Table of Contents

CometBFT v1 Alpha 2

We have been making progress towards the v1 alpha-2 release. 

We have made considerable progress on PBTS and are approximately halfway through the work. As mentioned earlier, testing and QA for v1 is still delayed until after PBTS is fully prepared, but we could make some QA improvements, such as the ones in #1868 and #2107.

We have recently restructured the v1 documentation, updating all existing documents to fit the diataxis framework. The content has been organized into four major categories: references, how-to, guides, and explanations. This restructuring will make it easier for our users to locate the content they need.

Concerning CometBFT-rs one of our wind-down projects, and is also relevant for v1 release, we have recently released the v0.1.0-alpha.2 version of cometbft-rs, which includes adjustments such as adapting domain types to support v1.0 protos and making changes to cometbft-rs. We have reached out to impacted teams to give early notifications of potential implications (Penumbra and Hermes), and are collaborating with them to plan the sunsetting of tendermint-rs.

Security releases

We have addressed a security concern in the 0.38 line, released v0.38.3, and then released a follow-up v0.38.4 that enables a more straightforward upgrade to the security patch. 

We also worked with the Cosmos SDK and Berachain teams to fix a potential regression into how the security patch was used and released v0.38.5 to address that concern.

Release Support Policy

As we work to establish a support policy for CometBFT releases, we recognize the importance of gathering feedback from those who are building on this platform. Your input will help us ensure that we are providing the best possible support for CometBFT users. We appreciate your collaboration and look forward to hearing your thoughts and suggestions on this matter.

CometBFT-DB release

We’ve worked on cometbft-db and removed some technical debt (RemoteDB) and added support for a new database (PebbleDB) in CometBFT-DB and we’ve made a new release v0.10.0.

Consensus modularity preparation work, to simplify internal modularity

We have done an investigation into a requirement by Evmos (and Berachain) for pluggable hash functions and scoped an initial approach towards a fix (comment). This will likely be rolled out post-v1 to avoid scope ballooning.

Efficiency improvements

The backport of ADR-101 to v0.37.x was paused after gathering feedback, and there are signals from Osmosis that they may use it in the future. We are currently evaluating the feedback and will consider restarting the experiment at a later time.

Other efficiency improvements we’ve made was to prototype simple improvements and evaluate in local setup and we wrote an abstract description of the mempool propagation protocol.

We also have experimented with an “ideal” key layout and ruled out that design. We have prepared a special path of CometBFT for use with an optimized key layout, and we are coordinating with operator teams to gather production metrics and assess the impact of our storage layout optimizations, which continues the work in #1041 and the tracking issue #2058.

Technical Debt & Bug Fixes

Related to work we’ve done to reduce technical debt and to fix bugs in order to enable higher velocity for internal and external developers we’ve done many things such as the ones in #2154, #1964, #1968, #1902, #1878, #1769.

Communications & Community

Our team has been actively engaged in promoting the importance of our work, and we have recently collaborated with several other key players in the ecosystem to form a working group focused on enhancing the mempool. By bringing together our collective expertise and resources, we are dedicated to making significant improvements to this vital component of the system.

🙏 Thank you for taking the time to stay up-to-date with our work!

If you have any questions or want to discuss anything related to CometBFT, feel free to connect with our team on Discord or Telegram. We are always ready to assist you and provide you with the necessary information. Don't hesitate to reach out and keep the conversation going!

Stay updated: Follow @cometbft on Twitter.

CometBFT is currently being stewarded by Informal Systems with support from many contributors across the interchain stack, including the Cosmos SDK and IBC teams.