You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

36 lines
1.4 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. # Application BlockChain Interface (ABCI)
  2. Blockchains are systems for multi-master state machine replication.
  3. **ABCI** is an interface that defines the boundary between the replication engine (the blockchain),
  4. and the state machine (the application).
  5. Using a socket protocol, a consensus engine running in one process
  6. can manage an application state running in another.
  7. Previously, the ABCI was referred to as TMSP.
  8. The community has provided a number of additional implementations, see the [Tendermint Ecosystem](https://github.com/tendermint/awesome#ecosystem)
  9. ## Installation & Usage
  10. 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.
  11. ## Specification
  12. A detailed description of the ABCI methods and message types is contained in:
  13. - [The main spec](https://github.com/tendermint/spec/blob/master/spec/abci/abci.md)
  14. - [A protobuf file](../proto/tendermint/abci/types.proto)
  15. - [A Go interface](./types/application.go)
  16. ## Protocol Buffers
  17. To compile the protobuf file, run (from the root of the repo):
  18. ```sh
  19. make protoc_abci
  20. ```
  21. See `protoc --help` and [the Protocol Buffers site](https://developers.google.com/protocol-buffers)
  22. for details on compiling for other languages. Note we also include a [GRPC](https://www.grpc.io/docs)
  23. service definition.