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: createDataSet → terminateService → deleteDataSet. 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 (createDataSet → terminateService → deleteDataSet → 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
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:
createDataSet→terminateService→deleteDataSet. Currently, the FWSS lockup period is 30 days on both mainnet and calibration. This means that afterterminateServiceis called, it takes 30 days before the SP can calldeleteDataSetand 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)
modifyRailLockupwhen the rail is created in FWSS.Motivation
With a shorter lockup period, dealbot can exercise the full dataset lifecycle (
createDataSet→terminateService→deleteDataSet→ newcreateDataSet) as a canary, giving us confidence that the entire flow works end-to-end. Without this, dealbot can only test throughterminateServiceon calibration, leaving the final deletion path untested by automated monitoring.Related