Some checks are pending
docker-build-cometbft / vars (push) Waiting to run
docker-build-cometbft / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-cometbft / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-cometbft / merge-images (push) Blocked by required conditions
docker-build-e2e-node / vars (push) Waiting to run
docker-build-e2e-node / build-images (amd64, ubuntu-24.04) (push) Blocked by required conditions
docker-build-e2e-node / build-images (arm64, ubuntu-24.04-arm) (push) Blocked by required conditions
docker-build-e2e-node / merge-images (push) Blocked by required conditions
35 lines
1.3 KiB
Markdown
35 lines
1.3 KiB
Markdown
# Application BlockChain Interface (ABCI)
|
|
|
|
Blockchains are systems for multi-master state machine replication.
|
|
**ABCI** is an interface that defines the boundary between the replication engine (the blockchain),
|
|
and the state machine (the application).
|
|
Using a socket protocol, a consensus engine running in one process
|
|
can manage an application state running in another.
|
|
|
|
Previously, the ABCI was referred to as TMSP.
|
|
|
|
|
|
|
|
## Installation & Usage
|
|
|
|
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.
|
|
|
|
## Specification
|
|
|
|
A detailed description of the ABCI methods and message types is contained in:
|
|
|
|
- [The main spec](https://github.com/cometbft/cometbft/blob/v0.38.x/spec/abci/README.md)
|
|
- [A protobuf file](../proto/tendermint/types/types.proto)
|
|
- [A Go interface](./types/application.go)
|
|
|
|
## Protocol Buffers
|
|
|
|
To compile the protobuf file, run (from the root of the repo):
|
|
|
|
```sh
|
|
make protoc_abci
|
|
```
|
|
|
|
See `protoc --help` and [the Protocol Buffers site](https://developers.google.com/protocol-buffers)
|
|
for details on compiling for other languages. Note we also include a [GRPC](https://www.grpc.io/docs)
|
|
service definition.
|