FilOzone / FilOzone/filecoin-services
Shorten FWSS lockup period on calibration for faster dataset lifecycle testing
- Dominant language
- Solidity
- Stars
- 8
- Forks
- 25
- Avg merge
- 14h 38m
- Merged PRs (30d)
- 12
Description
## Context
From the [2026-05-28 Hotfix postmortem action items](https://app.notion.com/p/filecoindev/Dealbot-deletes-and-creates-datasets-in-calibration-371dc41950c1801fbaa0feb0fa051389?source=copy_link) 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
- [Dealbot deletes and creates datasets in calibration (Notion)](https://app.notion.com/p/filecoindev/Dealbot-deletes-and-creates-datasets-in-calibration-371dc41950c1801fbaa0feb0fa051389)
- Dealbot dataset lifecycle: https://github.com/FilOzone/dealbot/issues/586
- FWSS termination work: #484
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the FWSS deployment scripts and the rail-creation path that calls modifyRailLockup; trace how the chain ID and lockup value are selected. Done means newly created calibration datasets use an approximately 8-hour lockup, mainnet remains at 30 days, and existing datasets are unaffected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- solidity
- Domain
- blockchain, devops
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100