Waku’s Requirements on Codex
Publish Large Messages - Uploader is online
To be used for messages archival in Chat SDK, Qaku, opchan, etc. It assumes that a special user (admin) regularly bundles messages and pushes them to an external system. It then pushes the CID (or any other reference to retrieve the bundle) over Waku.
New users retrieve and listen to new messages using Waku. Thanks to SDS, they learn whether they miss messages, and if so, can proceed with retrieval from the latest bundle.
(clearly, spec is needed).
Functionality
- Ability to transfer a message of 1MB or more between two or more nodes.
- Message’s CID is less than 100kB.
Usability
- Developer can implement upload feature with 10 lines of code or less.
- No configuration is necessary.
Reliability
- Download operation can be resumed.
- Upload operation can be resumed.
- Uploader can be expected to be online when user are downloading.
Performance
None
Supportability
- Library for Browser applications.
- Library for Nim desktop applications.
- Library for Nim mobile applications.
+ (Privacy, Anonymity, Censorship-Resistance, Deployments)
- The unavailability of a static host (IP, DNS) does not prevent a user to upload or download (censorship-resistance).
- TODO (privacy)
Publish Large Messages - Uploader is offline
To be used for
- large messages transfers (such as images, videos, audio) in Chat SDK, Opchan, etc.
- Enhancement of message archival (uploader does not need to be online for messages to be retrieved).
Builds on Publish Large Messages - Uploader is online
Functionality
- After upload, message is retrievable without sender being online.
- Best effort in terms of message retention; expectations on restrictions are documented.
Usability
- Receiver can download the large message, even if sender is offline, as long as they get the CID out-of-band.
Reliability
- Uploader may be offline when receiver is retrieving the large message.
Performance
None
Supportability
- Library for Browser applications.
- Library for Nim applications.
+ (Privacy, Anonymity, Censorship-Resistance, Deployments)**
TODO (privacy)
Publish Large Messages - Retention is guaranteed
In this scenario, the uploader wants to ensure the data is persisted and is willing to pay for it. This may be a Qaku Q&A admin, a opchan cell owner or Status Communities owner.
Builds on previous requirements.
Functionality
- Uploader may pay for large message storage to have guaranteed retention.
Usability
- Receiver can download the large message, even if sender is offline, as long as they get the CID out-of-band.
- Receiver does not need to pay to retrieve the large message.
Reliability
- Uploader may be offline when receiver is retrieving the large message.
- Uploader is guaranteed a period of retention for a given price.
Performance
See previous requirements.
Supportability
See previous requirements.
+ (Privacy, Anonymity, Censorship-Resistance, Deployments)**
See previous requirements.