Files
tendermint/spec/abci
Thane Thomson ae1fc74f80 abci: Make ABCI and P2P wire-level length delimiters consistent (#9182)
* abci: use protoio for length delimitation (#5818)

Migrate ABCI to use protoio (uint64 length delimiters) instead of int64
length delimiters to be consistent with the approach used in the P2P
layer.

Closes: #5783

* Import ReadMsg interface change from #5868

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Convert PR number to link in UPGRADING

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Update Tendermint Socket Protocol docs to reflect length prefix encoding change

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Clarify that length delimiters are varints

Signed-off-by: Thane Thomson <connect@thanethomson.com>

Signed-off-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Marko <marbar3778@yahoo.com>
2022-08-11 13:30:39 -04:00
..
2021-09-21 07:23:54 +00:00

order, parent
order parent
1
title order
ABCI 2

ABCI

ABCI stands for "Application Blockchain Interface". 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, each with a corresponding Request and Responsemessage 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 ABCI messages and methods are defined in protocol buffers. This allows Tendermint to run with applications written in many programming languages.

This specification is split as follows:

  • Methods and Types - complete details on all ABCI methods and message types
  • Applications - how to manage ABCI application state and other details about building ABCI applications
  • Client and Server - for those looking to implement their own ABCI application servers