Skip to content

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

Description

@bkontur

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 → Triage: remove (or justify) 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 docs: CODEOWNERS review gate for docs/design + move drafts out #305 / Triage: remove (or justify) provider-initiated checkpoints #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)

Refs: #305, #306

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