Skip to content

specs: add Upgrade Process to complete upgrade spec#881

Closed
maurelian wants to merge 6 commits intomainfrom
l2cm-upgrades-spec/6-upgrade-process
Closed

specs: add Upgrade Process to complete upgrade spec#881
maurelian wants to merge 6 commits intomainfrom
l2cm-upgrades-spec/6-upgrade-process

Conversation

@maurelian
Copy link
Contributor

Adds end-to-end upgrade lifecycle specification:

  • 7-phase upgrade workflow (Development → Verification)
  • Transaction execution sequence at fork activation
  • Atomic upgrade execution
  • Cross-chain consistency requirements
  • Fork activation and verification procedures

Includes 5 invariants, 3 assumptions, and complete lifecycle definition.
Part 6 of 6-part specification - completes L2 contract upgrades spec.


Stack:

@maurelian maurelian marked this pull request as ready for review January 28, 2026 15:56
@maurelian maurelian force-pushed the l2cm-upgrades-spec/5-gas-limit branch from f1dedf9 to 6ed5bb2 Compare January 28, 2026 20:14
@maurelian maurelian force-pushed the l2cm-upgrades-spec/6-upgrade-process branch from d539d8e to 3789533 Compare January 28, 2026 20:14
@maurelian maurelian force-pushed the l2cm-upgrades-spec/5-gas-limit branch 2 times, most recently from 60db7c8 to 5463b9d Compare January 28, 2026 21:03
Adds foundational specification for L2 predeploy contract upgrades:

- Overview: Describes deterministic hard fork-driven upgrade mechanism
- ConditionalDeployer: Idempotent CREATE2 deployment with collision handling

Includes 4 invariants, 2 assumptions, and interface definition.
Part 1 of 6-part specification.
Adds L2ProxyAdmin component for batch upgrade orchestration:

- Defines upgradePredeploys() function for DELEGATECALL-based batch upgrades
- Exclusive Depositor Account authorization
- Backwards compatibility with existing ProxyAdmin interface

Includes 4 invariants, 3 assumptions, and interface definition.
Part 2 of 6-part specification.
Adds L2ContractsManager component for upgrade execution logic:

- Configuration gathering and preservation
- Deterministic upgrade execution via DELEGATECALL
- Feature flag support
- Atomic upgrade operations

Includes 6 invariants, 4 assumptions, and interface definition.
Part 3 of 6-part specification.
Adds NUT Bundle component defining upgrade transaction format:

- JSON bundle format and structure
- Deterministic bundle generation process
- Bundle verification against source code
- Transaction ordering and nonce sequencing

Includes 6 invariants, 4 assumptions, and bundle format specification.
Part 4 of 6-part specification.
Adds gas allocation mechanism for upgrade transactions:

- 50M gas allocation for upgrade blocks
- Independent of system transaction gas limits
- Deterministic allocation at fork activation
- Prevents out-of-gas failures during upgrades

Includes 5 invariants, 3 assumptions, and allocation specification.
Part 5 of 6-part specification.
@maurelian maurelian force-pushed the l2cm-upgrades-spec/5-gas-limit branch from 5463b9d to 5c710e3 Compare January 28, 2026 21:31
Adds end-to-end upgrade lifecycle specification:

- 7-phase upgrade workflow (Development → Verification)
- Transaction execution sequence at fork activation
- Atomic upgrade execution
- Cross-chain consistency requirements
- Fork activation and verification procedures

Includes 5 invariants, 3 assumptions, and complete lifecycle definition.
Part 6 of 6-part specification - completes L2 contract upgrades spec.
@maurelian maurelian force-pushed the l2cm-upgrades-spec/6-upgrade-process branch from 3789533 to be313f0 Compare January 28, 2026 21:32
@maurelian maurelian changed the base branch from l2cm-upgrades-spec/5-gas-limit to main January 28, 2026 22:05
@maurelian
Copy link
Contributor Author

replaced by #884

@maurelian maurelian closed this Feb 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant