This change removes the partial gRPC interface to the RPC service, which was deprecated in resolution of #6718. Details: - rpc: Remove the client and server interfaces and proto definitions. - Remove the gRPC settings from the config library. - Remove gRPC setup for the RPC service in the node startup. - Fix various test helpers to remove gRPC bits. - Remove the --rpc.grpc-laddr flag from the CLI. Note that to satisfy the protobuf interface check, this change also includes a temporary edit to buf.yaml, that I will revert after this is merged.
Protocol Buffers
This sections defines the types and messages shared across implementations. The definition of the data structures are located in the core/data_structures for the core data types and ABCI definitions are located in the ABCI section.
Process of Updates
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 in the issue members from both the Tendermint-go and Tendermint-rs 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. - Open issues within Tendermint-go and Tendermint-rs repos. This is used to notify the teams that a change occurred in the spec.
- Tag the issue with a spec version label. This will notify the team the changed has been made on master but has not entered a release.
Versioning
The spec repo aims to be versioned. Once it has been versioned, updates to the protobuf files will live on master. After a certain amount of time, decided on by Tendermint-go and Tendermint-rs team leads, a release will be made on the spec repo. The spec may contain minor releases as well, depending on the implementation these changes may lead to a breaking change. If so, the implementation team should open an issue within the spec repo requiring a major release of the spec.
If the steps above were followed each implementation should have issues tagged with a spec change label. Once all issues have been completed the team should signify their readiness for release.