|
|
@ -7,14 +7,15 @@ parent: |
|
|
|
|
|
|
|
# ABCI |
|
|
|
|
|
|
|
ABCI stands for "**A**pplication **B**lock**c**hain **I**nterface". |
|
|
|
ABCI is the interface between Tendermint (a state-machine replication engine) |
|
|
|
and your application (the actual state machine). It consists of a set of |
|
|
|
_methods_, where each method has a corresponding `Request` and `Response` |
|
|
|
message type. Tendermint calls the ABCI methods on the ABCI application by sending the `Request*` |
|
|
|
messages and receiving the `Response*` messages in return. |
|
|
|
_methods_, each with a corresponding `Request` and `Response`message type. |
|
|
|
To perform state-machine replication, Tendermint calls the ABCI methods on the |
|
|
|
ABCI application by sending the `Request*` messages and receiving the `Response*` messages in return. |
|
|
|
|
|
|
|
All message types are defined in a [protobuf file](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/abci/types.proto). |
|
|
|
This allows Tendermint to run applications written in any programming language. |
|
|
|
All ABCI messages and methods are defined in [protocol buffers](https://github.com/tendermint/spec/blob/master/proto/abci/types.proto). |
|
|
|
This allows Tendermint to run with applications written in many programming languages. |
|
|
|
|
|
|
|
This specification is split as follows: |
|
|
|
|
|
|
|