mirror of
https://github.com/tendermint/tendermint.git
synced 2026-02-11 22:31:09 +00:00
This PR implements a hack. It does effectively 2 things: 1. It checks in a set of protos, suffixed with `.intermediate` that allow the abci proto generation to proceed. 2. Adds a script / makefile to enable the generation. The script is pretty simple. It copies over the 'intermediate' files over to be the `.proto` files for the `abci/types.proto` file and the `types/types.proto` files, generates all the protos, and then reverts all of the changes made to the `*.proto` files and the `*.pb.go` files, except for the single abci file. If this is too ugly, I'm happy to tweak it, but my goal here is to have some working version of the protos that currently build the abci code so that we can coordinate changes to the code and not have them all sit in different branches that make breaking changes across each other. The end goal is to have the `.intermediate` files disappear completely, since they should be moving towards containing everything that the `.proto` files contain.
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.