Terra's upgrade module inherits from the Cosmos SDK's
upgrade module. This document is a stub and mainly covers important Terra-specific notes on how it is used.
The upgrade module allows live chains to be upgraded with breaking changes smoothly.
The upgrade module is relatively straightforward:
_13_13The state contains the currently active upgrade Plan (if one exists) by key 0x0 and if a Plan is marked as "done" by key 0x1._13_13The state contains the consensus versions of all app modules in the application._13_13The versions are stored as big endian uint64 and can be accessed with prefix 0x2 appended by the corresponding module name of type string._13_13The state maintains a Protocol Version which can be accessed by key 0x3._13_13Plan: 0x0 -> Plan_13Done: 0x1 | byte(plan name) -> BigEndian(Block Height)_13ConsensusVersion: 0x2 | byte(module name) -> BigEndian(Module Consensus Version)_13ProtocolVersion: 0x3 -> BigEndian(Protocol Version)