Anton Kaliaev 15f621141d
remove TimeIotaMs from ABCI consensus params (#3403)
Also

- init substructures to avoid panic in pb2tm.ConsensusParams
Before: if csp.Block is nil and we later try to access/write to it,
we'll panic.
After: if csp.Block is nil and we later try to access/write to it,
there'll be no panic.
2019-03-11 22:21:17 +04:00
..
2019-02-11 16:31:34 +04:00
2018-07-01 22:36:49 -04:00
2018-09-28 20:03:19 -04:00

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.

The community has provided a number of addtional implementations, see the Tendermint Ecosystem

Installation & Usage

To get up and running quickly, see the getting started guide along with the abci-cli documentation which will go through the examples found in the examples directory.

Specification

A detailed description of the ABCI methods and message types is contained in:

Protocol Buffers

To compile the protobuf file, run (from the root of the repo):

make protoc_abci

See protoc --help and the Protocol Buffers site for details on compiling for other languages. Note we also include a GRPC service definition.