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