FilOzone / FilOzone/filecoin-services

Shorten FWSS lockup period on calibration for faster dataset lifecycle testing

Open
#503 2 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.