Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: change abci++ -> abci 1.0 #13322

Merged
merged 2 commits into from
Sep 16, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/architecture/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ When writing ADRs, follow the same best practices for writing RFCs. When writing
* [ADR 046: Module Params](./adr-046-module-params.md)
* [ADR 057: App Wiring Part I](./adr-057-app-wiring-1.md)
* [ADR 059: Test Scopes](./adr-059-test-scopes.md)
* [ADR 060: ABCI++ (Phase I)](./adr-060-abci%2B%2B-phase-i.md)
* [ADR 060: ABCI 1.0](adr-060-abci-1.0.md)

### Draft

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# ADR 60: ABCI++ (Phase I)
# ADR 60: ABCI 1.0 Integration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would've preferred to have kept (Phase I) 😜


## Changelog

Expand All @@ -10,15 +10,15 @@ PROPOSED

## Abstract

This ADR describes the initial adoption of [ABCI++](https://github.com/tendermint/tendermint/blob/master/spec/abci%2B%2B/README.md),
the next evolution of ABCI, within the Cosmos SDK. ABCI++ aims to provide
This ADR describes the initial adoption of [ABCI 1.0](https://github.com/tendermint/tendermint/blob/master/spec/abci%2B%2B/README.md),
the next evolution of ABCI, within the Cosmos SDK. ABCI 1.0 aims to provide
application developers with more flexibility and control over application and
consensus semantics, e.g. in-application mempools, in-process oracles, and
order-book style matching engines.

## Context

Tendermint will release ABCI++ in phases. Notably, at the time of this writing,
Tendermint will release ABCI 1.0. Notably, at the time of this writing,
Tendermint is releasing v0.37.0 which will include `PrepareProposal` and `ProcessProposal`.

The `PrepareProposal` ABCI method is concerned with a block proposer requesting
Expand All @@ -35,16 +35,16 @@ The second ABCI method, `ProcessProposal`, is used to process the block proposer
proposal as defined by `PrepareProposal`. This ABCI method requests that the
application evaluate the entire proposed block for validity.

It is important to note that in this phase of ABCI++ integration, the application
It is important to note that in ABCI 1.0 integration, the application
is NOT responsible for locking semantics -- Tendermint will still be responsible
for that. In the future, however, the application will be responsible for locking,
which allows for parallel execution possibilities.

## Decision

We will integrate the first phase of ABCI++, which will be introduced in Tendermint
v0.37.0, in the next major release of the Cosmos SDK. We will integrate the two
aforementioned ABCI++ methods on the `BaseApp` type. We describe the implementations
We will integrate ABCI 1.0, which will be introduced in Tendermint
v0.37.0, in the next major release of the Cosmos SDK. We will integrate ABCI 1.0
methods on the `BaseApp` type. We describe the implementations
of the two methods individually below.

Prior to describing the implementation of the two new methods, it is important to
Expand Down Expand Up @@ -210,17 +210,17 @@ case `ProcessProposal` fails.

### Backwards Compatibility

ABCI++ is naturally not backwards compatible with prior versions of the Cosmos SDK
ABCI 1.0 is naturally not backwards compatible with prior versions of the Cosmos SDK
and Tendermint. For example, an application that requests `RequestPrepareProposal`
to the same application that does not speak ABCI++ will naturally fail.
to the same application that does not speak ABCI 1.0 will naturally fail.

However, in the first phase of the integration, the existing ABCI methods as we
know them today will still exist and function as they currently do.

### Positive

* Applications now have full control over transaction ordering and priority.
* Lays the groundwork for the full integration of ABCI++, which will unlock more
* Lays the groundwork for the full integration of ABCI 1.0, which will unlock more
app-side use cases around block construction and integration with the Tendermint
consensus engine.

Expand Down