Skip to content

[Deliverable] Introduce Waku API in the Browser #283

@weboko

Description

@weboko

Owner: js-waku

Feature: Waku SDK

FURPS:

  • F1. Setup, start and stop a Waku node.
  • F2. Support edge node operation mode.
  • F4. Does automatic peer discovery based on the node platform and operation mode.
  • F5. Returns health and connectivity information using proven heuristics.
  • F6. Previously discovered peers are persisted across restarted, and potentially used for future connections.
  • U1. When setting up a Waku node, no need to specify what protocols to mount, only an operational mode (edge or relay).
  • U2. Disconnection detection and recovery, and other peer management matters are automatically handled.
  • U3. Developers do not need to specify the protocols used to send and receive messages; it is deduced from the mode of operation.
  • U4. Developers pass and receive data to the API in types native to the wrapping language.
  • U5. By default, auto-sharding is applied, meaning developers do not need to be concerned by sharding; pubsub topics are never exposed.
  • U6. Developers only need to handle errors in cases of irretrievable failure requiring end-user action. Internal errors are not bubbled up if they can be recovered internally.
  • R1. Sends a message using peer-to-peer reliability (service node redundancy, optional store confirmation)
  • R2. Receives messages using peer-to-peer reliability (service node redundancy, periodic store query, periodic filter ping)

For S3. Browser; distribution via npmjs.com.

Checklist:

  • Specs: Define Waku API specs#68
  • Code: link to GitHub issues/PRs/Epic
  • Dogfood: link to dogfooding session/artefact
  • Docs: links to README.md or docs.waku.org (TBD)

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Status

To Do

Relationships

None yet

Development

No branches or pull requests

Issue actions