github.com/fiagdao/tendermint@v0.32.11-0.20220824195748-2087fcc480c1/README.md (about)

     1  # Tendermint
     2  
     3  ![banner](docs/tendermint-core-image.jpg)
     4  
     5  [Byzantine-Fault Tolerant](https://en.wikipedia.org/wiki/Byzantine_fault_tolerance)
     6  [State Machines](https://en.wikipedia.org/wiki/State_machine_replication).
     7  Or [Blockchain](<https://en.wikipedia.org/wiki/Blockchain_(database)>), for short.
     8  
     9  [![version](https://img.shields.io/github/tag/tendermint/tendermint.svg)](https://github.com/tendermint/tendermint/releases/latest)
    10  [![API Reference](https://camo.githubusercontent.com/915b7be44ada53c290eb157634330494ebe3e30a/68747470733a2f2f676f646f632e6f72672f6769746875622e636f6d2f676f6c616e672f6764646f3f7374617475732e737667)](https://godoc.org/github.com/tendermint/tendermint)
    11  [![Go version](https://img.shields.io/badge/go-1.13-blue.svg)](https://github.com/moovweb/gvm)
    12  [![Discord](https://img.shields.io/discord/669268347736686612.svg)](https://discord.gg/AzefAFd)
    13  [![license](https://img.shields.io/github/license/tendermint/tendermint.svg)](https://github.com/tendermint/tendermint/blob/master/LICENSE)
    14  [![](https://tokei.rs/b1/github/tendermint/tendermint?category=lines)](https://github.com/tendermint/tendermint)
    15  
    16  | Branch | Tests                                                                                                                                                | Coverage                                                                                                                             |
    17  | ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
    18  | master | [![CircleCI](https://circleci.com/gh/tendermint/tendermint/tree/master.svg?style=shield)](https://circleci.com/gh/tendermint/tendermint/tree/master) | [![codecov](https://codecov.io/gh/tendermint/tendermint/branch/master/graph/badge.svg)](https://codecov.io/gh/tendermint/tendermint) |
    19  
    20  Tendermint Core is Byzantine Fault Tolerant (BFT) middleware that takes a state transition machine - written in any programming language -
    21  and securely replicates it on many machines.
    22  
    23  For protocol details, see [the specification](https://github.com/tendermint/spec).
    24  
    25  For detailed analysis of the consensus protocol, including safety and liveness proofs,
    26  see our recent paper, "[The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938)".
    27  
    28  ## Releases
    29  
    30  NOTE: The master branch is now an active development branch (starting with `v0.32`). Please, do not depend on it and
    31  use [releases](https://github.com/tendermint/tendermint/releases) instead.
    32  
    33  Tendermint is being used in production in both private and public environments,
    34  most notably the blockchains of the [Cosmos Network](https://cosmos.network/).
    35  However, we are still making breaking changes to the protocol and the APIs and have not yet released v1.0.
    36  See below for more details about [versioning](#versioning).
    37  
    38  In any case, if you intend to run Tendermint in production,
    39  please [contact us](mailto:partners@tendermint.com) and [join the chat](https://riot.im/app/#/room/#tendermint:matrix.org).
    40  
    41  ## Security
    42  
    43  To report a security vulnerability, see our [bug bounty
    44  program](https://hackerone.com/tendermint)
    45  
    46  For examples of the kinds of bugs we're looking for, see [SECURITY.md](SECURITY.md)
    47  
    48  ## Minimum requirements
    49  
    50  | Requirement | Notes            |
    51  | ----------- | ---------------- |
    52  | Go version  | Go1.13 or higher |
    53  
    54  ## Documentation
    55  
    56  Complete documentation can be found on the [website](https://docs.tendermint.com/master/).
    57  
    58  ### Install
    59  
    60  See the [install instructions](/docs/introduction/install.md)
    61  
    62  ### Quick Start
    63  
    64  - [Single node](/docs/introduction/quick-start.md)
    65  - [Local cluster using docker-compose](/docs/networks/docker-compose.md)
    66  - [Remote cluster using terraform and ansible](/docs/networks/terraform-and-ansible.md)
    67  - [Join the Cosmos testnet](https://cosmos.network/testnet)
    68  
    69  ## Contributing
    70  
    71  Please abide by the [Code of Conduct](CODE_OF_CONDUCT.md) in all interactions.
    72  
    73  Before contributing to the project, please take a look at the [contributing guidelines](CONTRIBUTING.md)
    74  and the [style guide](STYLE_GUIDE.md).
    75  
    76  To get more active, Join the wider community at [Discord](https://discord.gg/AzefAFd) or jump onto the [Forum](https://forum.cosmos.network/).
    77  
    78  Learn more by reading the code and the
    79  [specifications](https://github.com/tendermint/spec) or watch the [Developer Sessions](/docs/DEV_SESSIONS.md) and read up on the
    80  [Architectural Decision Records](https://github.com/tendermint/tendermint/tree/master/docs/architecture).
    81  
    82  ## Versioning
    83  
    84  ### Semantic Versioning
    85  
    86  Tendermint uses [Semantic Versioning](http://semver.org/) to determine when and how the version changes.
    87  According to SemVer, anything in the public API can change at any time before version 1.0.0
    88  
    89  To provide some stability to Tendermint users in these 0.X.X days, the MINOR version is used
    90  to signal breaking changes across a subset of the total public API. This subset includes all
    91  interfaces exposed to other processes (cli, rpc, p2p, etc.), but does not
    92  include the in-process Go APIs.
    93  
    94  That said, breaking changes in the following packages will be documented in the
    95  CHANGELOG even if they don't lead to MINOR version bumps:
    96  
    97  - crypto
    98  - types
    99  - rpc/client
   100  - config
   101  - node
   102  - libs
   103    - bech32
   104    - common
   105    - db
   106    - errors
   107    - log
   108  
   109  Exported objects in these packages that are not covered by the versioning scheme
   110  are explicitly marked by `// UNSTABLE` in their go doc comment and may change at any
   111  time without notice. Functions, types, and values in any other package may also change at any time.
   112  
   113  ### Upgrades
   114  
   115  In an effort to avoid accumulating technical debt prior to 1.0.0,
   116  we do not guarantee that breaking changes (ie. bumps in the MINOR version)
   117  will work with existing tendermint blockchains. In these cases you will
   118  have to start a new blockchain, or write something custom to get the old
   119  data into the new chain.
   120  
   121  However, any bump in the PATCH version should be compatible with existing histories
   122  (if not please open an [issue](https://github.com/tendermint/tendermint/issues)).
   123  
   124  For more information on upgrading, see [UPGRADING.md](./UPGRADING.md).
   125  
   126  ### Supported Versions
   127  
   128  Because we are a small core team, we only ship patch updates, including security updates, 
   129  to the most recent minor release and the second-most recent minor release. Consequently, 
   130  we strongly recommend keeping Tendermint up-to-date. Upgrading instructions can be found 
   131  in [UPGRADING.md](./UPGRADING.md).
   132  
   133  ## Resources
   134  
   135  ### Tendermint Core
   136  
   137  For details about the blockchain data structures and the p2p protocols, see the
   138  [Tendermint specification](https://docs.tendermint.com/master/spec/).
   139  
   140  For details on using the software, see the [documentation](/docs/) which is also
   141  hosted at: https://docs.tendermint.com/master/
   142  
   143  ### Tools
   144  
   145  Benchmarking is provided by `tm-load-test`.
   146  The code for `tm-load-test` can be found [here](https://github.com/informalsystems/tm-load-test) this binary needs to be built separately.
   147  Additional documentation is found [here](/docs/tools).
   148  
   149  ### Sub-projects
   150  
   151  - [Amino](http://github.com/tendermint/go-amino), reflection-based proto3, with
   152    interfaces
   153  - [IAVL](http://github.com/tendermint/iavl), Merkleized IAVL+ Tree implementation
   154  - [Tm-db](http://github.com/tendermint/tm-db), Data Base abstractions to be used in applications.
   155  
   156  ### Applications
   157  
   158  - [Cosmos SDK](http://github.com/cosmos/cosmos-sdk); a cryptocurrency application framework
   159  - [Ethermint](http://github.com/cosmos/ethermint); Ethereum on Tendermint
   160  - [Many more](https://tendermint.com/ecosystem)
   161  
   162  ### Research
   163  
   164  - [The latest gossip on BFT consensus](https://arxiv.org/abs/1807.04938)
   165  - [Master's Thesis on Tendermint](https://atrium.lib.uoguelph.ca/xmlui/handle/10214/9769)
   166  - [Original Whitepaper: "Tendermint: Consensus Without Mining"](https://tendermint.com/static/docs/tendermint.pdf)
   167  - [Blog](https://blog.cosmos.network/tendermint/home)