Open hdevalence opened 7 months ago
The Penumbra proto messages are hardcoded here: https://github.com/penumbra-zone/penumbra/blob/v0.63.2/proto/penumbra/penumbra/util/tendermint_proxy/v1alpha1/tendermint_proxy.proto#L54-L59 My guess is that the Tendermint proto messages were vendored (i.e. copy/pasted) from the upstream Cosmos protos at a prior version. While the Cosmos proto message you linked to is indeed different, it's also tracking "main" of the upstream cosmos protos, which our setup very much does not do: https://github.com/penumbra-zone/penumbra/blob/v0.63.2/proto/penumbra/buf.yaml#L7-L12
If I adjust the Cosmos URL to use the same commit we pin our buf build setup, then I get yet a third message type: https://buf.build/cosmos/cosmos-sdk/docs/e7a85cef453e4b999ad9aff8714ae05f:tendermint.abci#tendermint.abci.TxResult
So to resolve this, we need to:
As the comment on the buf.yaml file shows, last time we tried a naive "use latest upstream Cosmos protos" we encountered compatibility errors around vote extensions. I just tried again locally, and indeed, the problem persists:
error[E0063]: missing fields `extension` and `extension_signature` in initializer of `penumbra_proto::tendermint::types::Vote`
--> crates/util/tendermint-proxy/src/tendermint_proxy.rs:386:50
|
386 | ... vote_a: Some(proto::tendermint::types::Vote{
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `extension` and `extension_signature`
error[E0063]: missing fields `extension` and `extension_signature` in initializer of `penumbra_proto::tendermint::types::Vote`
--> crates/util/tendermint-proxy/src/tendermint_proxy.rs:408:50
|
408 | ... vote_b: Some(proto::tendermint::types::Vote{
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `extension` and `extension_signature`
For more information about this error, try `rustc --explain E0063`.
error: could not compile `penumbra-tendermint-proxy` (lib) due to 2 previous errors
warning: build failed, waiting for other jobs to finish...
Describe the bug
Compare https://buf.build/cosmos/cosmos-sdk/docs/main:tendermint.abci#tendermint.abci.TxResult with https://buf.build/penumbra-zone/penumbra/docs/main:penumbra.util.tendermint_proxy.v1alpha1#penumbra.util.tendermint_proxy.v1alpha1.TxResult
why are these different? are they actually different? is there any canonical upstream here?