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