-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
revert: Mark upgrade query field as deprecated instead of reserved #9847
Conversation
|
||
bytes upgraded_consensus_state = 2; | ||
bytes upgraded_consensus_state_bytes = 2; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We cannot have two fields with same name. I propose to:
- keep
upgraded_consensus_state
for the Any field, same as in 0.42 - rename to new bytes field to
upgraded_consensus_state_bytes
.
This would be a breaking change in the RCs, and ibc-go might need to change some code. cc @colin-axner
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is a breaking change in 0.43.0-RC -> 0.43.0-RC3.
I know it sounds "hacky" - but this thing was only added for IBC fix and only IBC uses it. So maybe we can keep the original breaking change (from https://github.com/cosmos/cosmos-sdk/pull/8673/files#r682168269)?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fairly certain ibc-go doesn't rely on this gRPC and relayers don't either. Relayers use ABCI queries since they need proof of the consensus state. To the best of my knowledge, it is unused
I don't mind any changes in this type, neither the incompatible break, nor the still incompatible revert. We never used it in the client and I don't see that changing any time soon. |
Worth to link the #8673 (comment) response |
OK. I created this PR so the overall proto upgrade between 0.42 -> 0.43 is more kosher (i.e. no breaking change). But if nobody uses this field and it breaks RCs, let's just:
|
I'm for keeping the "current" version. I'm not sure if a comment will add anything (maybe some historical info)? |
Current version sounds good to me Sorry I was a little distracted yesterday, but to add more color on the context here. The upgraded consensus state only exists within state at the block height committed before the upgrade is scheduled. It will be removed immediately when the upgrade is performed. Furthermore it only contains the block time and next validator hash, which could be determined via different queries. On top of that, I just noticed we have added our own gRPC to fulfill this functionality. The upgraded consensus state information would only be useful information to a developer debugging an issue, I see no reason any external client would use this gRPC (unless gRPCs could return proofs) We should just remove this functionality entirely in v0.44 before someone starts trying to use it |
Description
In #8673, we marked the
upgraded_consensus_state
field inside the x/upgradeQueryUpgradedConsensusStateResponse
as reserved, thinking that it was alright.After #9613, we should not mark fields as reserved. This PR reverts that change, and instead marks the field as
deprecated
following ADR-044.ref: https://github.com/cosmos/cosmos-sdk/pull/8673/files#r682168269
ref: confio/cosmjs-types#4 (comment)
Author Checklist
All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.
I have...
!
to the type prefix if API or client breaking changeCHANGELOG.md
Reviewers Checklist
All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.
I have...
!
in the type prefix if API or client breaking change