github.com/KYVENetwork/cometbft/v38@v38.0.3/README.md (about) 1 # CometBFT 2 3 [Byzantine-Fault Tolerant][bft] [State Machine Replication][smr]. Or 4 [Blockchain], for short. 5 6 [![Version][version-badge]][version-url] 7 [![API Reference][api-badge]][api-url] 8 [![Go version][go-badge]][go-url] 9 [![Discord chat][discord-badge]][discord-url] 10 [![License][license-badge]][license-url] 11 [![Sourcegraph][sg-badge]][sg-url] 12 13 | Branch | Tests | Linting | 14 |---------|------------------------------------------------|---------------------------------------------| 15 | main | [![Tests][tests-badge]][tests-url] | [![Lint][lint-badge]][lint-url] | 16 | v0.38.x | [![Tests][tests-badge-v038x]][tests-url-v038x] | [![Lint][lint-badge-v038x]][lint-url-v038x] | 17 | v0.37.x | [![Tests][tests-badge-v037x]][tests-url-v037x] | [![Lint][lint-badge-v037x]][lint-url-v037x] | 18 | v0.34.x | [![Tests][tests-badge-v034x]][tests-url-v034x] | [![Lint][lint-badge-v034x]][lint-url-v034x] | 19 20 CometBFT is a Byzantine Fault Tolerant (BFT) middleware that takes a 21 state transition machine - written in any programming language - and securely 22 replicates it on many machines. 23 24 It is a fork of [Tendermint Core][tm-core] and implements the Tendermint 25 consensus algorithm. 26 27 For protocol details, refer to the [CometBFT Specification](./spec/README.md). 28 29 For detailed analysis of the consensus protocol, including safety and liveness 30 proofs, read our paper, "[The latest gossip on BFT 31 consensus](https://arxiv.org/abs/1807.04938)". 32 33 ## Documentation 34 35 Complete documentation can be found on the 36 [website](https://docs.cometbft.com/). 37 38 ## Releases 39 40 Please do not depend on `main` as your production branch. Use 41 [releases](https://github.com/KYVENetwork/cometbft/v38/releases) instead. 42 43 If you intend to run CometBFT in production, we're happy to help. To contact 44 us, in order of preference: 45 46 - [Create a new discussion on 47 GitHub](https://github.com/KYVENetwork/cometbft/v38/discussions) 48 - Reach out to us via [Telegram](https://t.me/CometBFT) 49 - [Join the Cosmos Network Discord](https://discord.gg/cosmosnetwork) and 50 discuss in 51 [`#cometbft`](https://discord.com/channels/669268347736686612/1069933855307472906) 52 53 More on how releases are conducted can be found [here](./RELEASES.md). 54 55 ## Security 56 57 To report a security vulnerability, see our [bug bounty 58 program](https://hackerone.com/cosmos). For examples of the kinds of bugs we're 59 looking for, see [our security policy](SECURITY.md). 60 61 ## Minimum requirements 62 63 | CometBFT version | Requirement | Notes | 64 |------------------|-------------|-------------------| 65 | main | Go version | Go 1.20 or higher | 66 | v0.38.x | Go version | Go 1.20 or higher | 67 | v0.37.x | Go version | Go 1.20 or higher | 68 | v0.34.x | Go version | Go 1.19 or higher | 69 70 ### Install 71 72 See the [install guide](./docs/guides/install.md). 73 74 ### Quick Start 75 76 - [Single node](./docs/guides/quick-start.md) 77 - [Local cluster using docker-compose](./docs/networks/docker-compose.md) 78 79 ## Contributing 80 81 Please abide by the [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions. 82 83 Before contributing to the project, please take a look at the [contributing 84 guidelines](CONTRIBUTING.md) and the [style guide](STYLE_GUIDE.md). You may also 85 find it helpful to read the [specifications](./spec/README.md), and familiarize 86 yourself with our [Architectural Decision Records 87 (ADRs)](./docs/architecture/README.md) and [Request For Comments 88 (RFCs)](./docs/rfc/README.md). 89 90 ## Versioning 91 92 ### Semantic Versioning 93 94 CometBFT uses [Semantic Versioning](http://semver.org/) to determine when and 95 how the version changes. According to SemVer, anything in the public API can 96 change at any time before version 1.0.0 97 98 To provide some stability to users of 0.X.X versions of CometBFT, the MINOR 99 version is used to signal breaking changes across CometBFT's API. This API 100 includes all publicly exposed types, functions, and methods in non-internal Go 101 packages as well as the types and methods accessible via the CometBFT RPC 102 interface. 103 104 Breaking changes to these public APIs will be documented in the CHANGELOG. 105 106 ### Upgrades 107 108 In an effort to avoid accumulating technical debt prior to 1.0.0, we do not 109 guarantee that breaking changes (i.e. bumps in the MINOR version) will work with 110 existing CometBFT blockchains. In these cases you will have to start a new 111 blockchain, or write something custom to get the old data into the new chain. 112 However, any bump in the PATCH version should be compatible with existing 113 blockchain histories. 114 115 For more information on upgrading, see [UPGRADING.md](./UPGRADING.md). 116 117 ### Supported Versions 118 119 Because we are a small core team, we have limited capacity to ship patch 120 updates, including security updates. Consequently, we strongly recommend keeping 121 CometBFT up-to-date. Upgrading instructions can be found in 122 [UPGRADING.md](./UPGRADING.md). 123 124 Currently supported versions include: 125 126 - v0.38.x: CometBFT v0.38 introduces ABCI 2.0, which implements the entirety of 127 ABCI++ 128 - v0.37.x: CometBFT v0.37 introduces ABCI 1.0, which is the first major step 129 towards the full ABCI++ implementation in ABCI 2.0 130 - v0.34.x: The CometBFT v0.34 series is compatible with the Tendermint Core 131 v0.34 series 132 133 ## Resources 134 135 ### Libraries 136 137 - [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); A framework for building 138 applications in Golang 139 - [Tendermint in Rust](https://github.com/informalsystems/tendermint-rs) 140 - [ABCI Tower](https://github.com/penumbra-zone/tower-abci) 141 142 ### Applications 143 144 - [Cosmos Hub](https://hub.cosmos.network/) 145 - [Terra](https://www.terra.money/) 146 - [Celestia](https://celestia.org/) 147 - [Anoma](https://anoma.network/) 148 - [Vocdoni](https://docs.vocdoni.io/) 149 150 ### Research 151 152 Below are links to the original Tendermint consensus algorithm and relevant 153 whitepapers which CometBFT will continue to build on. 154 155 - [The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938) 156 - [Master's Thesis on Tendermint](https://atrium.lib.uoguelph.ca/xmlui/handle/10214/9769) 157 - [Original Whitepaper: "Tendermint: Consensus Without Mining"](https://tendermint.com/static/docs/tendermint.pdf) 158 159 ## Join us 160 161 CometBFT is currently maintained by [Informal 162 Systems](https://informal.systems). If you'd like to work full-time on CometBFT, 163 [we're hiring](https://informal.systems/careers)! 164 165 Funding for CometBFT development comes primarily from the [Interchain 166 Foundation](https://interchain.io), a Swiss non-profit. Informal Systems also 167 maintains [cometbft.com](https://cometbft.com). 168 169 [bft]: https://en.wikipedia.org/wiki/Byzantine_fault_tolerance 170 [smr]: https://en.wikipedia.org/wiki/State_machine_replication 171 [Blockchain]: https://en.wikipedia.org/wiki/Blockchain 172 [version-badge]: https://img.shields.io/github/v/release/cometbft/cometbft.svg 173 [version-url]: https://github.com/KYVENetwork/cometbft/v38/releases/latest 174 [api-badge]: https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667 175 [api-url]: https://pkg.go.dev/github.com/cometbft/cometbft 176 [go-badge]: https://img.shields.io/badge/go-1.20-blue.svg 177 [go-url]: https://github.com/moovweb/gvm 178 [discord-badge]: https://img.shields.io/discord/669268347736686612.svg 179 [discord-url]: https://discord.gg/cosmosnetwork 180 [license-badge]: https://img.shields.io/github/license/cometbft/cometbft.svg 181 [license-url]: https://github.com/KYVENetwork/cometbft/v38/blob/main/LICENSE 182 [sg-badge]: https://sourcegraph.com/github.com/KYVENetwork/cometbft/v38/-/badge.svg 183 [sg-url]: https://sourcegraph.com/github.com/cometbft/cometbft?badge 184 [tests-url]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml 185 [tests-url-v038x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml?query=branch%3Av0.38.x 186 [tests-url-v037x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml?query=branch%3Av0.37.x 187 [tests-url-v034x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml?query=branch%3Av0.34.x 188 [tests-badge]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml/badge.svg?branch=main 189 [tests-badge-v038x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml/badge.svg?branch=v0.38.x 190 [tests-badge-v037x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml/badge.svg?branch=v0.37.x 191 [tests-badge-v034x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/tests.yml/badge.svg?branch=v0.34.x 192 [lint-badge]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml/badge.svg?branch=main 193 [lint-badge-v034x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml/badge.svg?branch=v0.34.x 194 [lint-badge-v037x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml/badge.svg?branch=v0.37.x 195 [lint-badge-v038x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml/badge.svg?branch=v0.38.x 196 [lint-url]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml 197 [lint-url-v034x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml?query=branch%3Av0.34.x 198 [lint-url-v037x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml?query=branch%3Av0.37.x 199 [lint-url-v038x]: https://github.com/KYVENetwork/cometbft/v38/actions/workflows/lint.yml?query=branch%3Av0.38.x 200 [tm-core]: https://github.com/tendermint/tendermint