Skip to content

Triage: remove (or justify) provider-initiated checkpoints #306

Description

@bkontur

Summary

Provider-initiated checkpoints were added to the design (#7) and implemented / documented (#92), but on review the design does not hold up and may not be needed at all. This issue tracks the decision to either justify & canonicalize it or remove it entirely.

As a first step, the design has been pulled out of the review-gated canonical docs in #305 (recoverable from git) so it no longer reads as ratified while under question.

Why it's questioned

Claim in the draft Reality
"Mobile clients can't put a checkpoint on chain" The client uploads the data — it is the sole holder — so it can submit the checkpoint on-chain in the same session. No always-on infrastructure needed.
"There is no protection without an on-chain checkpoint" False. A client that retains the providers' signed commitments can enforce / challenge that off-chain-signed state directly.
Provider-initiated coordination is a new capability It overlaps what replica nodes already do — autonomous sync + challengeability.
The "Why" section justifies the feature It was never reviewed and does not hold up under scrutiny.

Decision needed

  • Option A — Approve & canonicalize. The design is reviewed and accepted; move it back into docs/design/ (review-gated) with a corrected rationale, and keep the implementation.
  • Option B — Remove entirely. Delete the related code (checkpoint_coordinator.rs, the pallet extrinsics / storage / events) and the design draft, as redundant with replica nodes + client-held signatures.

What #305 already changed

Removed the entire provider-initiated checkpoint surface from docs/design/scalable-web3-storage-implementation.md:

Layer Removed
Config DefaultCheckpointInterval, DefaultCheckpointGrace, CheckpointReward, CheckpointMissPenalty
Storage CheckpointConfigs / CheckpointWindowConfig, LastCheckpointWindow, CheckpointRewards, CheckpointPool
Events ProviderCheckpointSubmitted, CheckpointConfigUpdated, CheckpointMissPenalized, CheckpointRewardClaimed, CheckpointPoolFunded
Signed payload CheckpointProposal (struct + signing reference)
Extrinsics provider_checkpoint, configure_checkpoint_window, report_missed_checkpoint, claim_checkpoint_rewards, fund_checkpoint_pool
Off-chain HTTP /checkpoint/sign, /checkpoint/duty, /checkpoint/trigger

Not touched: client-initiated checkpoint / extend_checkpoint / challenge_checkpoint remain in the canonical docs — this issue is only about the provider-initiated variant.

The design content now lives in docs/drafts/provider-initiated-checkpoints.md pending this decision.

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions