- Notifications
You must be signed in to change notification settings - Fork1
⟁ Tendermint Core (BFT Consensus) in Go
License
scrtlabs/tendermint
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Byzantine-Fault TolerantState Machine Replication. OrBlockchain, for short.
Branch | Tests | Linting |
---|---|---|
main | ||
v0.37.x | ||
v0.34.x |
CometBFT is a Byzantine Fault Tolerant (BFT) middleware that takes astate transition machine - written in any programming language - and securelyreplicates it on many machines.
It is a fork ofTendermint Core and implements the Tendermintconsensus algorithm.
For protocol details, refer to theCometBFT Specification.
For detailed analysis of the consensus protocol, including safety and livenessproofs, read our paper, "The latest gossip on BFTconsensus".
Complete documentation can be found on thewebsite.
Please do not depend onmain
as your production branch. Usereleases instead.
We haven't released v1.0 yetsince we are making breaking changes to the protocol and the APIs. See below formore details aboutversioning.
In any case, if you intend to run CometBFT in production, we're happy to help.
To contact us, you can alsojoin the chat.
More on how releases are conducted can be foundhere.
To report a security vulnerability, see ourbug bountyprogram. For examples of the kinds of bugs we'relooking for, seeour security policy.
Requirement | Notes |
---|---|
Go version | Go 1.19 or higher |
See theinstall instructions.
Please abide by theCode of Conduct in all interactions.
Before contributing to the project, please take a look at thecontributingguidelines and thestyle guide. You may alsofind it helpful to read thespecifications, and familiarizeyourself with ourArchitectural Decision Records(ADRs) andRequest For Comments(RFCs).
CometBFT usesSemantic Versioning to determine when andhow the version changes. According to SemVer, anything in the public API canchange at any time before version 1.0.0
To provide some stability to users of 0.X.X versions of CometBFT, the MINORversion is used to signal breaking changes across CometBFT's API. This APIincludes all publicly exposed types, functions, and methods in non-internal Gopackages as well as the types and methods accessible via the CometBFT RPCinterface.
Breaking changes to these public APIs will be documented in the CHANGELOG.
In an effort to avoid accumulating technical debt prior to 1.0.0, we do notguarantee that breaking changes (i.e. bumps in the MINOR version) will work withexisting CometBFT blockchains. In these cases you will have to start a newblockchain, or write something custom to get the old data into the new chain.However, any bump in the PATCH version should be compatible with existingblockchain histories.
For more information on upgrading, seeUPGRADING.md.
Because we are a small core team, we have limited capacity to ship patchupdates, including security updates. Consequently, we strongly recommend keepingCometBFT up-to-date. Upgrading instructions can be found inUPGRADING.md.
Currently supported versions include:
- v0.34.x: The CometBFT v0.34 series is compatible with the Tendermint Corev0.34 series
- v0.37.x: (release candidate)
- Cosmos SDK; A framework for buildingapplications in Golang
- Tendermint in Rust
- ABCI Tower
Below are links to the original Tendermint consensus algorithm and relevantwhitepapers which CosmosBFT will continue to build on.
- The latest gossip on BFT consensus
- Master's Thesis on Tendermint
- Original Whitepaper: "Tendermint: Consensus Without Mining"
CometBFT is currently maintained byInformalSystems. If you'd like to work full-time on CometBFT,we're hiring!
Funding for CometBFT development comes primarily from theInterchainFoundation, a Swiss non-profit. Informal Systems alsomaintainscometbft.com.
About
⟁ Tendermint Core (BFT Consensus) in Go
Resources
License
Code of conduct
Security policy
Stars
Watchers
Forks
Packages0
Languages
- Go86.7%
- TeX7.1%
- TLA4.9%
- Shell0.5%
- Python0.4%
- Makefile0.3%
- Other0.1%