Skip to content

Files

Latest commit

7e85f38 · Oct 12, 2023

History

History
This branch is 1053 commits behind cometbft/cometbft:main.

abci

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Feb 22, 2023
Oct 12, 2023
Jun 29, 2023
Feb 22, 2023
Aug 16, 2023
Aug 16, 2023
Sep 28, 2023
order parent
1
title order
ABCI++
3

ABCI++

Introduction

ABCI++ is a major evolution of ABCI (Application Blockchain Interface). Like its predecessor, ABCI++ is the interface between CometBFT (a state-machine replication engine) and the actual state machine being replicated (i.e., the Application). The API consists of a set of methods, each with a corresponding Request and Response message type.

The methods are always initiated by CometBFT. The Application implements its logic for handling all ABCI++ methods. Thus, CometBFT always sends the Request* messages and receives the Response* messages in return.

All ABCI++ messages and methods are defined in protocol buffers. This allows CometBFT to run with applications written in many programming languages.

This specification is split as follows:

  • Overview and basic concepts - interface's overview and concepts needed to understand other parts of this specification.
  • Methods - complete details on all ABCI++ methods and message types.
  • Requirements for the Application - formal requirements on the Application's logic to ensure CometBFT properties such as liveness. These requirements define what CometBFT expects from the Application; second part on managing ABCI application state and related topics.
  • CometBFT's expected behavior - specification of how the different ABCI++ methods may be called by CometBFT. This explains what the Application is to expect from CometBFT.
  • Example scenarios - specific scenarios showing why the Application needs to account for any CometBFT's behaviour prescribed by the specification.
  • Client and Server - for those looking to implement their own ABCI application servers.