specs/waku-wacky-whisper-spec.md

2.0 KiB

Waku Wacky Whisper Specification

Version: 0.1 (Draft)

Authors: Infura "The Devil" Osaka noreply@status.im

Basically Infura for chat. Addresses scalability issues of Whisper by sacrificing metadata protection. Specifically for resource restricted devices like mobilephones with limited data plan.

インフラ (Infura) means infrastructure in Japanese, and 枠 (Waku) is a closely related word that means 'frame' or 'slide'.

Rationale

Many users put a premium on bandwidth usage over metadata protection. Implementing Waku mode gives users a more performant experience, at the expense of metadata protection and requiring stronger connectivity.

For more background, please see Whisper theoretical model report with associated source code.

Roles and definitions

  1. Waku-chan
  2. Waku-san (aka Waku node)

A client is said to implement waku mode if it connects to a Waku node and acts as a Waku-chan. The Waku node connects to the rest of the Whisper network.

Amendments to Whisper

Waku mode is compatible with EIP-627 and simply extends its capabilities. It does this through a new packet code, as well as some client specific recommendations. Two specific protocol changes are done:

  1. Modify EIP627 by adding a new packet code, e.g. Topic List [101, bytes] where bytes is a list of N topics.

Format TBD.

  1. Provide way to identify oneself as a Waku node.

Method TBD.

Recommendations for clients

  1. Avoid duplicate envelopes

To avoid duplicate envelopes, only connect to one Waku node. Benign duplicate envelopes is an intrinsic property of Whisper which often leads to a N factor increase in traffic, where N is the number of peers you are connected to.

  1. Topic specific recommendations

TBD.