Add implementation notes (#334)

* Add implementation notes

- Implementation matrix
- Recommendations for client developers

* Tweak

* Update content/docs/rfcs/10/README.md

Co-authored-by: Franck Royer <franck@royer.one>

* Update content/docs/rfcs/10/README.md

Co-authored-by: Franck Royer <franck@royer.one>

Co-authored-by: Franck Royer <franck@royer.one>
This commit is contained in:
Oskar Thorén 2021-04-08 13:39:11 +08:00 committed by GitHub
parent 0ee6cf7bbd
commit 78f3f71c61
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 42 additions and 0 deletions

View File

@ -209,6 +209,48 @@ The accounting model can be used in `13/WAKU2-STORE` and `12/WAKU2-FILTER` to pr
Additionally, this gives node operators who provide a useful service to the network an incentive to perform that service.
See [18/WAKU2-SWAP](/spec/18) for more details on this piece of work.
## Appendix A: Implementation Notes
### Implementation Matrix
There are multiple implementations of Waku v2 and its protocols:
- [nim-waku (Nim)](https://github.com/status-im/nim-waku/)
- [go-waku (Go)](https://github.com/status-im/go-waku/)
- [js-waku (NodeJS and Browser)](https://github.com/status-im/js-waku/)
Below you can find an overview of the specs that they implement as they relate to Waku. This includes Waku v1 specs, as they are used for bridging between the two networks.
| Spec | nim-waku (Nim) | go-waku (Go) | js-waku (Node JS) | js-waku (Browser JS) |
| ---- | -------------- | ------------ | ----------------- | -------------------- |
|[6/WAKU1](/spec/6)|:heavy_check_mark:|||
|[7/WAKU-DATA](/spec/7)|:heavy_check_mark:|:heavy_check_mark:||
|[8/WAKU-MAIL](/spec/8)|:heavy_check_mark:|||
|[9/WAKU-RPC](/spec/9)|:heavy_check_mark:|||
|[10/WAKU2](/spec/10)|:heavy_check_mark:|:construction:|:construction:|:construction:|
|[11/WAKU2-RELAY](/spec/11)|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:construction:|
|[12/WAKU2-FILTER](/spec/12)|:heavy_check_mark:|||
|[13/WAKU2-STORE](/spec/13)|:heavy_check_mark:|:construction:|:construction:|
|[14/WAKU2-MESSAGE](/spec/14)|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|
|[15/WAKU2-BRIDGE](/spec/15)|:heavy_check_mark:|||
|[16/WAKU2-RPC](/spec/16)|:heavy_check_mark:|||
|[17/WAKU2-RLNRELAY](/spec/17)|:construction:|||
|[18/WAKU2-SWAP](/spec/18)|:construction:|||
### Recommendations for clients
To implement a minimal Waku v2 client, we recommend implementing the following subset in the following order:
- [10/WAKU2](/spec/10) - this spec
- [11/WAKU2-RELAY](/spec/11) - for basic operation
- [14/WAKU2-MESSAGE](/spec/14) - version 0 (unencrypted)
- [13/WAKU2-STORE](/spec/13) - for historical messaging (query mode only)
To get compatibility with Waku v1:
- [7/WAKU-DATA](/spec/7)
- [14/WAKU2-MESSAGE](/spec/14) - version 1 (encrypted with `7/WAKU-DATA`)
# Copyright
Copyright and related rights waived via [CC0](https://creativecommons.org/publicdomain/zero/1.0/).