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
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
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
Decision needed
docs/design/(review-gated) with a corrected rationale, and keep the implementation.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:DefaultCheckpointInterval,DefaultCheckpointGrace,CheckpointReward,CheckpointMissPenaltyCheckpointConfigs/CheckpointWindowConfig,LastCheckpointWindow,CheckpointRewards,CheckpointPoolProviderCheckpointSubmitted,CheckpointConfigUpdated,CheckpointMissPenalized,CheckpointRewardClaimed,CheckpointPoolFundedCheckpointProposal(struct + signing reference)provider_checkpoint,configure_checkpoint_window,report_missed_checkpoint,claim_checkpoint_rewards,fund_checkpoint_pool/checkpoint/sign,/checkpoint/duty,/checkpoint/triggerThe design content now lives in
docs/drafts/provider-initiated-checkpoints.mdpending this decision.References