Description
This is a bug report/feature or change request/support request
Problem
Follow-up of waku-org/examples.waku.org#275
@waku-org/js-waku-developers needs to define a small number of dogfooding webapp in lab.waku.org that enable:
- dogfooding of new features, APIs and library
- handover to Docs & Dev Rel of the feature for documentation and Dev Rel asset creation purposes.
Also note that it may interesting to unit test this small set of example to ensure they do not break as they will be critical to deliver any new feature.
There is already some work done in this direction
Proposed Solutions
To avoid unnecessary and duplicate effort, the set of dogfood web app in lab.waku.org should be minimal and demonstrate as many API as possible.
In rough term of API to be covered:
- Node creation, usage of RLN and autosharding with default bootstrap and peer discovery
- Usage of req-res protocols: store, light push, filter
- encryption and signature: ECIES, AES, noise
- Other SDKs:
@waku/react
Proposal: have two examples.
- Very simple React app that demonstrate usage of
@waku/react
- Web app that demonstrate usage of most API listed above.
For the Web app, I recommend the usage of the notes web app as it can allow you demonstrated req-res protocol usage but also encryption:
- When creating a note or using the app, user creates a new ECIES keypair as identity for the note
- A note is always signed by owner of the note, signature is verify by reader to confirm original author (from oldest note they can retrieve) does a note update
- note are encrypted using AES (symmetrics), symkey is included in URL passed to share a note
Potentially, noise-js could also be demonstrated: Alice links her browser phone to her browser desktop instance via noise.
When doing a note update on her phone, the desktop receives the note update via noise channel and proceed with signing it and propagating it to the network. This demonstrated how Alice can pair devices without copying private keys on other devices.
Notes
Feel free to edit this description once you agreed on the solution.
Some liveness is also necessary to easily spot disconnection, etc. I would recommend that when viewing a not, the page is automatically refreshed if a message with an update on the same note is received.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status