paritytech / paritytech/web3-storage

Triage docs/drafts: review & promote shipped-feature docs (marketplace, checkpoint manager, encryption, …)

Open
#308 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
13
Forks
3
Avg merge
2d 2h
Merged PRs (30d)
33

Description

Summary

The docs reorg in #305 moved everything not-yet-canonical into docs/drafts/. But that folder now conflates two very different kinds of doc:

  1. Genuinely unratified / questionable WIP — tracked separately (provider-initiated checkpoints → #306; "Capped Split" challenge-economics extension).
  2. Accurate documentation of shipped features that were only swept in by the bulk move.

This issue triages group (2): review each doc and promote it to docs/design/ (review-gated) or docs/reference/ (ungated), or consciously keep it as a draft.

Verified implemented — review & promote

Checked against code; each accurately describes shipped functionality:

  • marketplace.md — provider capacity + discovery/matching.
    • Code: client/src/discovery.rs (DiscoveryClient, find_matching_providers, suggest_providers, find_best_provider, MatchedProvider); pallet max_capacity + enforcement (crates/pallets/storage-provider/src/impls/providers.rs); providers_with_capacity runtime API.
    • Nit: MinStakePerByte is shown as both 1_000_000 (§Economic Model) and 1_000 (§Configuration) — reconcile.
  • CHECKPOINT_PROTOCOL.md — client-side (Layer 1) checkpoint manager. This is the client-initiated orchestration (the ratified path), not the provider-initiated feature removed in #305 / #306.
    • Code: client/src/checkpoint.rs (CheckpointManager, CheckpointConfig, CommitmentCollection, CheckpointResult, ProviderHealthHistory, start_checkpoint_loop).
    • Nits: two Phase-3 items still unchecked (auto-challenge for divergent providers, metrics/monitoring); reconcile the submit_commitment(...) reference against the actual checkpoint extrinsic name.
  • CLIENT_SIDE_ENCRYPTION.md — client-side encryption wire format + ciphers.
    • Code: Rust client/src/encryption.rs (EncryptionKey, XChaCha20Poly1305Cipher, v0x01); browser user-interfaces/s3-ui/src/lib/encryption.ts (AES-256-GCM, v0x02). Wire format matches the doc.

Also in docs/drafts/ — triage the same way (not yet code-verified)

  • L1_design_implementation.md (file-system & S3 interfaces — implemented)
  • S3_METADATA_INDEX.md
  • smart-contracts.md (already flagged in docs/README.md as a reference/ candidate)
  • EXECUTION_FLOWS.md

Decision needed (per doc)

For each: docs/design/ (review-gated — needs @eskimor per CODEOWNERS) if it's design-of-record, docs/reference/ (ungated) if it's how-it-works reference, or keep as draft. Fix the nits above on promotion.

Out of scope (tracked elsewhere)

  • Provider-initiated checkpoints → #306
  • "Capped Split" / challenge-economics two-tier gap → docs/drafts/challenge-economics-extensions.md

Refs: #305, #306

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the checklist in docs/drafts/ and compare the verified documents against the referenced Rust and TypeScript entry points, including client/src/discovery.rs, client/src/checkpoint.rs, client/src/encryption.rs, and user-interfaces/s3-ui/src/lib/encryption.ts. Review the listed nits and determine whether each document belongs in docs/design/, docs/reference/, or remains a draft. Done means every listed document has a recorded disposition and required fixes are addressed.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, typescript
Domain
documentation
Issue type
Documentation
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.