mirror of
https://github.com/tendermint/tendermint.git
synced 2026-01-08 06:15:33 +00:00
Closes #8069 * Type `ABCIResponses` was just wrapping type `ResponseFinalizeBlock`. This patch removes the former. * Did some renaming to avoid confusion on the data structure we are working with. * We also remove any stale ABCIResponses we may have in the state store at the time of pruning **IMPORTANT**: There is an undesirable side-effect of the unwrapping. An empty `ResponseFinalizeBlock` yields a 0-length proto-buf serialized buffer. This was not the case with `ABCIResponses`. I have added an interim solution, but open for suggestions on more elegant ones.
Protocol Buffers
This sections defines the protocol buffers used in Tendermint. This is split into two directories: spec, the types required for all implementations and tendermint, a set of types internal to the Go implementation. All generated go code is also stored in tendermint.
More descriptions of the data structures are located in the spec directory as follows:
Process to generate protos
The .proto files within this section are core to the protocol and updates must be treated as such.
Steps
- Make an issue with the proposed change.
- Within the issue members, from the Tendermint team will leave comments. If there is not consensus on the change an RFC may be requested. 1a. Submission of an RFC as a pull request should be made to facilitate further discussion. 1b. Merge the RFC.
- Make the necessary changes to the
.protofile(s), core data structures and/or ABCI protocol. - Rebuild the Go protocol buffers by running
make proto-gen. Ensure that the project builds correctly by runningmake build.