github.com/badrootd/nibiru-cometbft@v0.37.5-0.20240307173500-2a75559eee9b/abci/README.md (about)

     1  # Application BlockChain Interface (ABCI)
     2  
     3  Blockchains are systems for multi-master state machine replication.
     4  **ABCI** is an interface that defines the boundary between the replication engine (the blockchain),
     5  and the state machine (the application).
     6  Using a socket protocol, a consensus engine running in one process
     7  can manage an application state running in another.
     8  
     9  Previously, the ABCI was referred to as TMSP.
    10  
    11  
    12  
    13  ## Installation & Usage
    14  
    15  To get up and running quickly, see the [getting started guide](../docs/app-dev/getting-started.md) along with the [abci-cli documentation](../docs/app-dev/abci-cli.md) which will go through the examples found in the [examples](./example/) directory.
    16  
    17  ## Specification
    18  
    19  A detailed description of the ABCI methods and message types is contained in:
    20  
    21  - [The v0.37.x spec](https://github.com/cometbft/cometbft/blob/v0.37.x/spec/abci/README.md)
    22  - [A protobuf file](../proto/tendermint/types/types.proto)
    23  - [A Go interface](./types/application.go)
    24  
    25  ## Protocol Buffers
    26  
    27  To compile the protobuf file, run (from the root of the repo):
    28  
    29  ```sh
    30  make protoc_abci
    31  ```
    32  
    33  See `protoc --help` and [the Protocol Buffers site](https://developers.google.com/protocol-buffers)
    34  for details on compiling for other languages. Note we also include a [GRPC](https://www.grpc.io/docs)
    35  service definition.