This repository contains the specs for the w3up
protocol and associated subsystems.
The implementations of these specs can be found in https://github.com/web3-storage/w3up
Stable specs may be improved but should not change fundamentally.
w3-account
- let users sync and recover delegatated capabilities via adid
they control.w3-session
- delegating capabilities to an agent via email verification magic link.w3-store
- storing shards of a DAGs as CARs; linking root CIDs to shards as uploads.w3-filecoin
- verfiably dealing uploads for commitment in filecoin storage.
Other specs are available, maturing at rates commensurate with general interest.
w3-admin
-consumer/get
,customer/get
,subscription/get
,admin/*
We use the following label system to identify the status of each spec:
- A work-in-progress to describe an idea before committing to a full draft.
- A draft ready for review. It should be implementable.
- A spec that has been implemented. It will change as we learn how it works in practice.
- It may be improved but should not change fundamentally.
- This spec will not change.
- This spec is no longer in use.
Nothing in this spec repository is permanent
. While some of the subsystems are stable
, some are still in a draft
or reliable
status.
Suggestions, contributions, criticisms are welcome. Though please make sure to familiarize yourself deeply with IPFS, the models it adopts, and the principles it follows. This repository falls under the IPFS Code of Conduct.
The CI runs markdownlint via markdownlint-cli2-action with the rules in .markdownlint.jsonc. To run the linter locally you can use markdownlint-cli2 with npx markdownlint-cli2 '*.md'
or install vscode-markdownlint in vscode.
Optionally prettier-vscode can also be use to format code blocks inside markdown files.
The CI runs a spellcheck using md-spellcheck-action. If you want to use a word that's being flagged by the spellchecker, add it to .github/workflows/words-to-ignore.txt.
Since the spellchecker depends on GitHub Actions, the best way to run it locally is with act, a Docker-based GitHub Actions workflow runner. When you first run act
, it will ask what base image to use as a default. The actions in this repo run fine with the default "medium" base image. Once act
is installed, you can run the full CI suite with act pull_request
. This will also run the markdown linting action described above.