Thane Thomson
62f97a69e9
abci: Refactor CheckTx to notify of recheck (#3744)
As per #2127, this refactors the RequestCheckTx ProtoBuf struct to allow for a flag indicating whether a query is a recheck or not (and allows for possible future, more nuanced states). In order to pass this extended information through to the ABCI app, the proxy.AppConnMempool (and, for consistency, the proxy.AppConnConsensus) interface seems to need to be refactored along with abcicli.Client. And, as per this comment, I've made the following modification to the protobuf definition for the RequestCheckTx structure: enum CheckTxType { New = 0; Recheck = 1; } message RequestCheckTx { bytes tx = 1; CheckTxType type = 2; } * Refactor ABCI CheckTx to notify of recheck As per #2127, this refactors the `RequestCheckTx` ProtoBuf struct to allow for: 1. a flag indicating whether a query is a recheck or not (and allows for possible future, more nuanced states) 2. an `additional_data` bytes array to provide information for those more nuanced states. In order to pass this extended information through to the ABCI app, the `proxy.AppConnMempool` (and, for consistency, the `proxy.AppConnConsensus`) interface seems to need to be refactored. Commits: * Fix linting issue * Add CHANGELOG_PENDING entry * Remove extraneous explicit initialization * Update ABCI spec doc to include new CheckTx params * Rename method param for consistency * Rename CheckTxType enum values and remove additional_data param |
5 years ago | |
---|---|---|
.. | ||
README.md | add spec/abci/readme to sidebar (#2551) | 6 years ago |
abci.md | abci: Refactor CheckTx to notify of recheck (#3744) | 5 years ago |
apps.md | Update apps.md (#3621) | 6 years ago |
client-server.md | [docs] improve organization of ABCI docs & fix links (#2749) | 6 years ago |
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: