You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are two ways of modifying the app version that CometBFT uses:
In the Info ABCI call upon startup
In the EndBlock ABCI call as a consensus param after every block.
As the upgrade module expects every app version change to coincide with a restart of the users binary, I believe it thus relies on the first option (but I'm not 100% sure). Prior versions (v0.46.x and below) did not allow users to modify the app version in EndBlock. Since the refactor, users can now modify the app version via baseapp passing access to the ParamStore. There is still the baseapp.appVersion variable which the upgrade module uses to change but has no connection with the ConsensusParams that get returned in EndBlock. This appVersion is what the upgrade module modifies. As it's not associated with the ConsensusParams, app developers can't have rolling upgrades.
Proposal
remove appVersion and consolidate by using the ParamStore. The methods AppVersion and SetAppVersion remain as they were but instead modify the ConsensusParams
x/upgrade does not keep its own copy of the app version but rather relies on the canonical version held in baseapp.
The text was updated successfully, but these errors were encountered:
Summary
There are two ways of modifying the app version that CometBFT uses:
Info
ABCI call upon startupEndBlock
ABCI call as a consensus param after every block.As the upgrade module expects every app version change to coincide with a restart of the users binary, I believe it thus relies on the first option (but I'm not 100% sure). Prior versions (v0.46.x and below) did not allow users to modify the app version in EndBlock. Since the refactor, users can now modify the app version via baseapp passing access to the
ParamStore
. There is still thebaseapp.appVersion
variable which the upgrade module uses to change but has no connection with theConsensusParams
that get returned inEndBlock
. ThisappVersion
is what the upgrade module modifies. As it's not associated with theConsensusParams
, app developers can't have rolling upgrades.Proposal
appVersion
and consolidate by using theParamStore
. The methodsAppVersion
andSetAppVersion
remain as they were but instead modify theConsensusParams
x/upgrade
does not keep its own copy of the app version but rather relies on the canonical version held in baseapp.The text was updated successfully, but these errors were encountered: