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