specs/README.md

6.8 KiB

Waku Specifications

Waku builds a family of privacy-preserving, censorship-resistant communication protocols for web3 applications. This repository contains specifications for the Waku suite of protocols.

List of Specifications:

  • Standards
    • Core: Standards and protocols for the core Waku p2p communications offering.
    • Application: Standards and protocols that describe various applications or encryption use cases built on top of a Waku network.
  • Informational: Waku design issues, general guidelines or background information that does not constitute a new feature.

Core standards

Waku Specifications Description
10/WAKU2 Waku Overview
11/WAKU2-RELAY Waku Relay
12/WAKU2-FILTER Waku Filter
13/WAKU2-STORE Waku Store
14/WAKU2-MESSAGE Waku Message
17/WAKU2-RLN-RELAY Waku RLN Relay
19/WAKU2-LIGHTPUSH Waku Lightpush
33/WAKU2-DISCV5 Waku Discovery v5 Ambient Peer Discovery
36/WAKU2-BINDINGS-API Waku C Bindings API
WAKU2-PEER-EXCHANGE Waku Peer Exchange
WAKU2-ENR Waku Usage of ENR
WAKU2-INCENTIVIZATION Waku Incentivization
66/WAKU2-METADATA Waku Metadata
64/WAKU2-NETWORK Waku Network
RELAY-SHARDING Waku Relay Sharding
WAKU2-STORE Waku Store Query
WAKU2-RLN-CONTRACT Waku RLN Contract Specification

Application standards

Waku Specifications Description
20/TOY-ETH-PM Toy Ethereum Private Message
21/WAKU2-FAULT-TOLERANT-STORE Waku Fault-Tolerant Store
22/TOY-CHAT Waku Toy Chat
26/WAKU2-PAYLOAD Waku Message Payload Encryption
53/WAKU2-X3DH X3DH Usage for Waku Payload Encryption
54/WAKU2-X3DH-SESSIONS Session Management for Waku X3DH
DANDELION Waku Dandelion
WAKU2-DEVICE-PAIRING Device Pairing and Secure Transfers with Noise
WAKU2-NOISE Noise Protocols for Waku Payload Encryption
TOR-PUSH Waku Tor Push
RLN-KEYSTORE Waku RLN Keystore JSON schema
TRANSPORT-RELIABILITY Waku Transport Reliability
REQ-RES-RELIABILITY Reliability for request-response protocols

Informational

Waku Specifications Description
23/WAKU2-TOPICS Waku Topic Usage Recommendations
27/WAKU2-PEERS Waku Peer Management Recommendations
29/WAKU2-CONFIG Waku Parameter Configuration Recommendations
30/ADAPTIVE-NODES Adaptive Nodes
ADVERSARIAL-MODELS Waku Adversarial Models and Attack-based Threat List
RELAY-STATIC-SHARD-ALLOC Waku Relay Static Shard Allocation

Resources

Relevant Waku resources related to the specifications located in this repository:

Contributions

Contributions are welcome from any party. Contributors can create specifications relating to the Waku domain and create a pull request to begin discussion.

Please adhere to the following contribution guidelines:

  • use the recommended template for new proposed specifications
  • use keywords as per the language recommendations in the template and Vac COSS
  • use semantic breaks
  • links to Waku, Vac or other IFT-related specifications must be to the corresponding Github repository and not to a webpage. For example, Waku specs reside in waku-org/specs and Vac RFCs in vacp2p/rfc-index.
  • we no longer use "v2" in the name of new specifications (and existing spec names inconsistent with this rule will eventually be revised). For example, do not call your specification "Waku v2 New Protocol" but simply "Waku New Protocol"
  • the title of new specifications must be prefixed with WAKU2- to differentiate it from other projects' specs and previous RFC generations. For example, "Waku New Protocol" could be titled WAKU2-NEW-PROTOCOL.

New specifications are considered a proof of concept. Once a rough consensus is reached towards stabilization, the specification may be considered to receive the draft status and further discussion will continue on the Vac RFC-Index repository.

NOTE: Specifications located in this repository should be considered not production ready. Discussion should be conducted with the intention of maturing each specification.

Head over to the Vac RFC-Index repository where other Waku specifications live.