Skip to content

refactor(protocol): align Zone fork activation with Tempo #1295

Description

@decofe

Summary

Align Zone fork activation with the specification's lockstep Tempo upgrade model.

The spec says a Zone selects execution rules from the imported Tempo block, activates changes in the Zone block that imports the fork block, and has no independent Zone protocol version. The implementation also carries a separate ZoneHardfork (Z0/Z1) schedule activated by the Zone block timestamp through optional z1Time genesis configuration.

Related: #18 records the decision to use lockstep upgrades. #459 tracks missing Tempo fork fields in generated genesis, but does not cover the independent Zone fork axis or imported-block activation semantics.

Acceptance criteria

  • Remove or disable independently scheduled Zone fork behavior unless the specification is deliberately revised to permit it.
  • Select Tempo and Zone execution behavior from the fork status of the exact Tempo block imported by advanceTempo, not an independently configured Zone timestamp.
  • Activate changed predeploy behavior before advanceTempo in the first Zone block importing the fork Tempo block.
  • Halt cleanly before producing a block when the node does not support the imported Tempo fork.
  • Pause settlement, without stopping valid execution, when the active prover/verifier cannot support the imported fork.
  • Add boundary tests covering pre-fork, fork-importing, and post-fork blocks for node execution, SPF replay, predeploy replacement, and settlement.
  • Coordinate with tempo-xtask create-zone generates genesis.json without Tempo fork activation fields #459 so generated genesis files carry the complete required Tempo fork schedule.

Spec references

  • Network Upgrades and Hard Fork Activation

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions