Skip to content

data-set terminate: confirm skipProvider as the default termination path #581

Description

@SgtPooki

data-set terminate calls synapse.storage.terminateService({ dataSetId, skipProvider: true }) (src/data-set/run.ts:314). skipProvider: true is filecoin-pin's explicit choice, not the SDK default. This issue tracks confirming it as the right default.

Both paths invoke the same on-chain call, FWSS.terminateService(dataSetId), so the fund wind-down (endEpoch, lockup-period settlement) is identical:

  • skipProvider: true (current): the owner wallet submits the tx directly and always returns a tx hash.
  • provider-relayed (SDK default): the owner signs an EIP-712 payload, the provider submits the same tx, and the SDK refuses when the account cannot settle its lockup in full (debt > 0).

Differences that matter for the CLI:

  1. Gas: direct, the owner pays; relayed, the provider pays.
  2. Debt gate: relayed refuses under outstanding lockup debt; direct always runs.
  3. Reliability: relayed needs the provider's HTTP endpoint up and willing; direct only needs the chain.
  4. tx hash: direct returns one immediately (the --wait UX depends on it); relayed polls the provider status endpoint and can come back empty.

For a self-service CLI, direct is the deterministic, provider-independent path that always yields a confirmable tx hash, so it stays the default. The one thing it gives up is letting the provider cover termination gas.

Decision to confirm: keep skipProvider: true as the default, and optionally expose provider-relayed termination behind a flag for users who want gasless wind-down.

Verified against synapse-sdk v1.0.1 and synapse-core v0.7.0 (storage/terminate.js, warm-storage/terminate-service.js, sp/terminate-service.js).

Context: PR #574 review thread #574 (comment) (noted as an out-of-scope follow-up in the PR body).

cc @juliangruber

Metadata

Metadata

Assignees

No one assigned

    Labels

    team/filecoin-pin"Filecoin Pin" project is a stakeholder for this work.team/fs-wgFOC working group is a stakeholder for this work, and thus wants to track it on their project board.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions