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.