We are thrilled to announce that we have just released the highly anticipated first v1 Alpha version (v1.0.0-alpha.1) of CometBFT. This release marks a milestone in the history of CometBFT and the Interchain Stack, and we are excited to share the details of the new features and changes included in this release.
This version is now available for integration and we are confident it will be valuable for all classes of users. The primary objective of releasing an alpha version is to allow the community to test it out and provide feedback. We value your input and look forward to hearing your thoughts on the new version.
As of v1, CometBFT will use an approach to versioning that is described in our Releases document
This alpha-series release is subject to Go API-breaking changes until a release candidate is finalized. Refer to the pre-releases section of the releases document to understand stability guarantees on pre-releases.
The v1 Alpha release is a significant release of CometBFT that includes several substantial changes that aim to reduce bandwidth consumption, enable modularity, improve integrators' experience and increase the velocity of the CometBFT development team.
Validators now proactively communicate the block parts they already have, so others do not resend them. This reduces network amplification and bandwidth consumption.
An experimental feature in the mempool allows limiting the number of peers to which transactions are forwarded. This allows operators to optimize gossip-related bandwidth consumption further.
An opt-in nop mempool is available, which allows application developers to turn off all mempool-related functionality in CometBFT. This enables them to build their transaction dissemination mechanism, such as a standalone transaction mempool-like process that can be scaled independently of the consensus engine/application.This requires application developers to implement their gossip/networking mechanisms. For more details, see ADR 111.
The v1 Alpha marks the first official release of the Data Companion API. This new set of gRPC APIs enables external applications to control the data pruning process of the node. With these APIs, operators and integrators can retrieve data from the node, such as Blocks and Block Results, and transfer it to an external data source. This new approach allows for custom data indexing and reduces node storage through the pruning APIs.
We have put in a lot of effort to version both the Protobuf definitions and the RPC. By doing so, we aim to ensure API stability while still allowing significant changes to be rolled out in non-breaking releases of CometBFT. You can refer to ADR 103 and ADR 107 for more information. We added some information about packages and proto definitions in the proto document and we plan in the near future to provide additional information about upgrade paths.
To increase velocity, the team has moved many publicly accessible Go packages into the `internal` directory. This will allow CometBFT core developers to roll out substantial changes in the future without worrying about causing breakages in users' codebases. The previous versions had a massive Go API surface area, which significantly hampered the team's ability to roll out impactful new changes to users. (Previously, such changes required a new breaking release, which currently takes 6 to 12 months to reach production use for many users.) For more details, please refer to ADR 109.
This release includes numerous changes that cannot be listed in a single blog post. Please refer to the Changelog document for a detailed list of breaking changes, bugs, features, and improvements.
We would like to express our gratitude to our wonderful community and partners for their valuable feedback, which was instrumental in driving this effort and achieving this milestone. Thank you for your support and collaboration!
If you have any questions or want to discuss anything related to CometBFT, feel free to connect with our team on or . 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 .
CometBFT is currently being stewarded by with support from many contributors across the interchain stack, including the Cosmos SDK and IBC teams.