Ethan Buchman 455d34134c
ADR-016: Add versions to Block and State (#2644)
* types: add Version to Header

* abci: add Version to Header

* state: add Version to State

* node: check software and state protocol versions match

* update changelog

* docs/spec: update for versions

* state: more tests

* remove TODOs

* remove empty test
2018-10-17 15:30:53 -04:00
..

Overview

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.

All message types are defined in a protobuf file. This allows Tendermint to run applications written in any programming language.

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