Skip to content

Shorten FWSS lockup period on calibration for faster dataset lifecycle testing #503

@BigLep

Description

@BigLep

Context

From the 2026-05-28 Hotfix postmortem action items and parking lot discussion in the 2026-06-03 Daily FOC WG Engineering-Sync.

Dealbot's goal in calibration is to exercise the full dataset lifecycle: createDataSetterminateServicedeleteDataSet. Currently, the FWSS lockup period is 30 days on both mainnet and calibration. This means that after terminateService is called, it takes 30 days before the SP can call deleteDataSet and the dataset is fully cleaned up. On calibration, this is unnecessarily long and prevents us from testing the complete lifecycle in a reasonable timeframe.

Proposal

Per @wjmelements' suggestion: make the lockup period configurable per chain ID at deployment time rather than using an immutable constant. On calibration, set it to something short like 8 hours (calibration's proving period is ~1 hour, so 8 hours gives plenty of margin). Mainnet stays at 30 days.

Implementation notes (from @wjmelements)

  • The lockup period is set via modifyRailLockup when the rail is created in FWSS.
  • This would need to be a parameter that varies by chain ID. Most FWSS parameters are currently constants — this would be one of the few that differs per deployment.
  • This can be handled in the deployment scripts rather than requiring contract logic changes.
  • Not retroactive — only applies to newly created datasets. Existing datasets keep their original lockup period.
  • This is a calibration-only change and can be a fast-follow after GA.

Motivation

With a shorter lockup period, dealbot can exercise the full dataset lifecycle (createDataSetterminateServicedeleteDataSet → new createDataSet) as a canary, giving us confidence that the entire flow works end-to-end. Without this, dealbot can only test through terminateService on calibration, leaving the final deletion path untested by automated monitoring.

Related

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    🐱 Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions