github.com/number571/tendermint@v0.34.11-gost/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 The community has provided a number of additional implementations, see the [Tendermint Ecosystem](https://github.com/tendermint/awesome#ecosystem) 12 13 14 ## Installation & Usage 15 16 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. 17 18 ## Specification 19 20 A detailed description of the ABCI methods and message types is contained in: 21 22 - [The main spec](https://github.com/tendermint/spec/blob/master/spec/abci/abci.md) 23 - [A protobuf file](../proto/tendermint/abci/types.proto) 24 - [A Go interface](./types/application.go) 25 26 ## Protocol Buffers 27 28 To compile the protobuf file, run (from the root of the repo): 29 30 ```sh 31 make protoc_abci 32 ``` 33 34 See `protoc --help` and [the Protocol Buffers site](https://developers.google.com/protocol-buffers) 35 for details on compiling for other languages. Note we also include a [GRPC](https://www.grpc.io/docs) 36 service definition.