Specifying IPFS and the InterPlanetary stack.
The technology that powers the content-addressable web is being standardized here.
Specifications
The specifications are broken up into multiple areas that cover the stack.
Architecture
These documents define the architectural principles that IPFS is built upon, and can be used as tools to evaluate implementations and applications of IPFS.
- IPFS Principles
- IPFS is a suite of specifications and tools that are defined by two key characteristics: content-addressing and transport-agnosticity. This document provides context and details about these characteristics. In doing so it defines what is or is not an IPFS implementation.
Meta
Meta contains all the non-technical documents that conspire to make the standards project work: what the core values are, what the governance model is, how to produce documents, etc.
- Code of Conduct
- The code of conduct that all community participants are held to.
- Spec for Specs
- Specifies the format and system used to create and maintain specifications for the interplanetary stack.
Routing
Routing is the way to determine where to find a given CID, Peer, or IPNS Record on the network; specifically, which network peers provide specific CIDs.
- Routing V1 HTTP API
- Delegated routing is a mechanism for IPFS implementations to use for offloading content routing and naming to another process/server. This specification describes an HTTP API for delegated content routing.
Exchange
Exchange is the way to for sending and receiving content addressed blocks of data.
- Bitswap
- Bitswap is a libp2p data exchange protocol for sending and receiving content addressed blocks of data. It attempts to acquire blocks from the p2p network that have been requested by the client, and also send blocks to others who want them.
HTTP Gateways
IPFS Gateway acts as a bridge between traditional HTTP clients and IPFS. Through the gateway, users can download files, directories and other IPLD data stored in IPFS as if they were stored in a traditional web server.
- Path Gateway Specification
- The most versatile form of IPFS Gateway is a Path Gateway. It exposes namespaces, such as /ipfs/ and /ipns/ under an HTTP server root and provides basic primitives for integrating IPFS resources within the existing HTTP stack.
- Trustless Gateway Specification
- Trustless Gateways are a minimal subset of Path Gateways that allow light IPFS clients to retrieve data behind a CID and verify its integrity without delegating any trust to the gateway itself.
- DNSLink Gateway Specification
- DNSLink Gateways are an extension of Path Gateways that enable hosting a specific content path under a specific DNS name.
- Subdomain Gateway Specification
- Subdomain Gateways are an extension of Path Gateways that enable website hosting isolated per CID/name, while remaining compatible with web browsers relative pathing and the security model of the web.
- Web _redirects File Specification
- The Redirects File specification is an extension of the Subdomain Gateway and DNSLink Gateway specifications that enables URL redirects or rewrites by adding redirect rules to a0 file stored underneath the root CID of a web site.
InterPlanetary Naming System
The InterPlanetary Naming System (IPNS) is a naming system responsible for creating, reading and updating mutable pointers to data.
- IPNS Record and Protocol
- Specifies the IPNS protocol in a language-agnostic manner, allowing everyone to create a compatible IPNS Record Publisher or Resolver.
- IPNS PubSub Router
- Specifies how to publish and retrieve IPNS records using libp2p PubSub router.
InterPlanetary Improvement Proposals
InterPlanetary Improvement Proposals (IPIP) are an orderly mechanism to consider changes to the IPFS specification. They are not changes to the specification itself, but their approval leads to a change in the specification.
- IPIP-0428: Allowing V2-Only Records in IPNS
- IPIP-0412: Signaling Block Order in CARs on HTTP Gateways
- IPIP-0410: Streaming NDJSON in Routing HTTP API
- IPIP-0402: Partial CAR Support on Trustless Gateways
- IPIP-0386: Subdomain Gateway Interop with _redirects
- IPIP-0379: Delegated IPNS HTTP API
- IPIP-0351: IPNS Signed Records Response Format on HTTP Gateways
- IPIP-0337: Delegated Content Routing HTTP API
- IPIP-0328: JSON and CBOR Response Formats on HTTP Gateways
- IPIP-0288: TAR Response Format on HTTP Gateways
- IPIP-0002: _redirects File Support on Web Gateways
- IPIP-0001: Lightweight Improvement Process for IPFS Specifications