Upgradeability
RollApp developers do not manage their rollup own smart contracts on Dymension L1. This is in contrast to smart contract rollups which are deployed by the rollup developers themselves, enabling them to upgrade the contracts and have custody of the rollup funds. In Dymension these core functionalities are embedded in the core protocol of the blockchain ensuring that rollup developers are not in custody of the funds and cannot perform any maliciously upgrade.
Architecture
Dymension maintains an onchain registry of approved RollApp binaries also referred to as "DRS-#" (Dymension RollApp Standard). Custom binaries and upgrades may be integrated upon Dymension governance approval. RollApps have the option to upgrade to all approved DRS binaries.
Upgrading L2s
DRS versions are onchain parameters on the RollApp (L2). Queryable with the following command:
rollappd q rollappparams params
RollApps may upgrade the DRS version, subsequently all full nodes are required to upgrade according the state transition logic of the L2.
A Sequencer operating a different DRS version than the one that was validly approved results in an app-hash mismatch from honest L2 full-nodes. In this case the full node subsequently sends a fraud proof proposal to the Dymension L1.
In an upcoming Dymension upgrade, the DRS version will be fraud provable by bringing a merkle proof to the relevant state root on the Dymension L1. This approach restricts the scope of changes, allowing only upgrades that comply with established yet extensible standards.
To upgrade a production RollApp please follow the following upgrade guide.