You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.9 KiB

abci++ spec: reorganizing basic concepts, adding outline for easy navigation (#8048) * reorganizing basic concepts, adding outline to navigate easy * Update spec/abci++/README.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: Sergio Mena <sergio@informal.systems> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * address problem with snapshot list data type * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com> * Update spec/abci++/abci++_basic_concepts_002_draft.md Co-authored-by: M. J. Fromberger <fromberger@interchain.io> * clarify handling events in same-execution model * remove outdated text about vote extension singing * clarification apphash state-sync Co-authored-by: Sergio Mena <sergio@informal.systems> Co-authored-by: M. J. Fromberger <fromberger@interchain.io> Co-authored-by: William Banfield <4561443+williambanfield@users.noreply.github.com>
3 years ago
  1. ---
  2. order: 1
  3. parent:
  4. title: ABCI++
  5. order: 3
  6. ---
  7. # ABCI++
  8. ## Introduction
  9. ABCI++ is a major evolution of ABCI (**A**pplication **B**lock**c**hain **I**nterface).
  10. Like its predecessor, ABCI++ is the interface between Tendermint (a state-machine
  11. replication engine) and the actual state machine being replicated (i.e., the Application).
  12. The API consists of a set of _methods_, each with a corresponding `Request` and `Response`
  13. message type.
  14. The methods are always initiated by Tendermint. The Application implements its logic
  15. for handling all ABCI++ methods.
  16. Thus, Tendermint always sends the `Request*` messages and receives the `Response*` messages
  17. in return.
  18. All ABCI++ messages and methods are defined in [protocol buffers](../../proto/tendermint/abci/types.proto).
  19. This allows Tendermint to run with applications written in many programming languages.
  20. This specification is split as follows:
  21. - [Overview and basic concepts](./abci++_basic_concepts_002_draft.md) - interface's overview and concepts needed to understand other parts of this specification.
  22. - [Methods](./abci++_methods_002_draft.md) - complete details on all ABCI++ methods
  23. and message types.
  24. - [Requirements for the Application](./abci++_app_requirements_002_draft.md) - formal requirements
  25. on the Application's logic to ensure liveness of Tendermint. These requirements define what
  26. Tendermint expects from the Application.
  27. - [Tendermint's expected behavior](./abci++_tmint_expected_behavior_002_draft.md) - specification of
  28. how the different ABCI++ methods may be called by Tendermint. This explains what the Application
  29. is to expect from Tendermint.
  30. >**TODO** Re-read these and remove redundant info
  31. - [Applications](../abci/apps.md) - how to manage ABCI application state and other
  32. details about building ABCI applications
  33. - [Client and Server](../abci/client-server.md) - for those looking to implement their
  34. own ABCI application servers