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