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
The way celestia-app supports multiple app versions in a single binary is error-prone. Currently it relies on conditionals littered throughout the code-base.
Proposal
Refactor how celestia-app supports multiple app versions by introducing an ABCI multiplexer that communicates with CometBFT and delegates to the appropriate version of celestia-app.
Next steps
Create a diagram of multiplexer communication with CometBFT.
Investigate Cosmos SDK v0.50.x to see how they structure state machine modules
Update: most Cosmos SDK modules were not spun out into modules in v0.50.x. See here. So I'm investigating v0.52.x instead. x/mint was spun out in this PR.
Question: why is "cosmossdk.io" the new import name? Go claims it doesn't have a valid go.mod: https://pkg.go.dev/cosmossdk.io
Explore if any other chains have a solution to one binary supporting many major versions.
Question: can we refactor celestia-app past versions from release branches into directories on main so that it's easier to modify v1, v2, v3 while working on multiplexed app? Go modules supports this because each new major version has a unique Go module name.
Question: how long do other chains take to perform stop + start upgrades?
Context
See prototype in #3729
Problem
The way celestia-app supports multiple app versions in a single binary is error-prone. Currently it relies on conditionals littered throughout the code-base.
Proposal
Refactor how celestia-app supports multiple app versions by introducing an ABCI multiplexer that communicates with CometBFT and delegates to the appropriate version of celestia-app.
Next steps
Create a diagram of multiplexer communication with CometBFT.
Investigate Cosmos SDK v0.50.x to see how they structure state machine modules
Update: most Cosmos SDK modules were not spun out into modules in v0.50.x. See here. So I'm investigating v0.52.x instead. x/mint was spun out in this PR.
Question: why is "cosmossdk.io" the new import name? Go claims it doesn't have a valid go.mod: https://pkg.go.dev/cosmossdk.io
Explore if any other chains have a solution to one binary supporting many major versions.
Question: can we refactor celestia-app past versions from release branches into directories on
main
so that it's easier to modify v1, v2, v3 while working on multiplexed app? Go modules supports this because each new major version has a unique Go module name.Question: how long do other chains take to perform stop + start upgrades?
Possible next steps
The text was updated successfully, but these errors were encountered: