tendermint/abci

Remove gogoproto

Closed this issue · 1 comments

Following up on #179

There have been challenges with compiling the proto file in other languages because of the gogoproto annotations.

It also feels wrong to rely on.

Might be better after all to just maintain all our own structs and shuffle back and forth.

We did this in #247 and then reverted in #255 so that the removal of gogoproto happens in a separate release from the latest changes to the ABCI messages (ie. changes to PubKey, Validator, BeginBlock, Genesis).

We can recover those commits later.

To properly remove gogoproto, we need a complete set of our own types for every type defined in the proto file. They should live in a different package from the proto generated types, and all interfaces should use exclusively our types.

In #247, only the Application was updated, but we'd need to update the Client too.

This is too complex, the better solution is to just use gogoproto and strip gogoproto from the proto file using a tool so we have a compatible proto file for everyone else.