diff --git a/FURPS/TEMPLATE.md b/FURPS/TEMPLATE.md new file mode 100644 index 0000000..f276232 --- /dev/null +++ b/FURPS/TEMPLATE.md @@ -0,0 +1,25 @@ +# FURPS + +## Functionality + +1. ... + +## Usability + +1. ... + +## Reliability + +1. ... + +## Performance + +1. ... + +## Supportability + +1. ... + +## + (Privacy, Anonymity, Deployments) + +1. ... \ No newline at end of file diff --git a/FURPS/core/rendezvous.md b/FURPS/core/rendezvous.md new file mode 100644 index 0000000..296b302 --- /dev/null +++ b/FURPS/core/rendezvous.md @@ -0,0 +1,29 @@ +# Rendezvous FURPS + +## Functionality + +1. libp2p-rendezvous peer discovery protocol is used + +## Usability + +1. Relay nodes discover additional peers via libp2p-rendezvous + +## Reliability + +1. Relay nodes finds new peers when solely using rendezvous **(Vac-QA)**. + +## Performance + +1. In an established network of 1k relay nodes on 10 shards with 1 bootstrap node, + 100 new relay nodes (relay + discv5 + Waku PX + rendezvous) + can connect to 20 relay peers in the right shard within 1 minute (**Vac-DST**) + ; run simulation without rendezvous to see the difference + +## Supportability + +1. Enabled in status-go using nwaku c-bindings +2. Enabled in nwaku-compose + +## + (Privacy, Anonymity, Deployments) + +N/A \ No newline at end of file diff --git a/FURPS/core/rln.md b/FURPS/core/rln.md new file mode 100644 index 0000000..e66678e --- /dev/null +++ b/FURPS/core/rln.md @@ -0,0 +1,100 @@ +# RLN FURPS + +## Smart Contract + +### Functionality + +1. RLN rate limit can be defined in terms of multiple messages per epoch. +2. RLN rate limit is set at membership insertion +3. RLN initialization only requires Web3 RPC `call`s, no blockchain events are needed. +4. An ERC-20 token deposit is needed to insert a membership + +### Usability + +1. Application developers can set RLN rate limit at insertion. +2. User do not need to wait for merkle tree synchronization and building to start relaying + or sending messages. +3. + +### Reliability + +1. ... + +### Performance + +1. ... + +### Supportability + +1. ... + +### + (Privacy, Anonymity, Deployments) + +1. Smart Contracts are deployed on Status Network Testnet. +2. TWN uses smart contracts deployed on Status Network Testnet. +3. Smart Contracts have been audited. + +## RLN Relay + +### Functionality + +1. Light push service node can attach RLN proof for clients. + +### Usability + +1. Light push clients do not need RLN logic. + +### Reliability + +1. Relay node can fallback to alternative RPC endpoints + if the primary Web3 RPC provider becomes unavailable. + +### Performance + +1. New relay node setup with an RLN membership can be ready to verify RLN rpoof within 5s, + no matter the size of the tree **(Vac-DST)**. +2. In a network of 10k RLN Relay nodes with each node sending one 1-100KB message every 10-30s, + messages are propagated within 500ms, with 99.9% success **(Vac-DST)**. +3. In a network of 10k RLN Relay nodes, + a spamming node will be disconnected from its peers in under 1 min. **(Vac-DST)** + +### Supportability + +1. Service node proof generation for light push clients is available in `wakunode2` for browser clients. + +### + (Privacy, Anonymity, Deployments) + +1. Service node proof generation for light push clients is deployed on TWN. +2. Service node proof generation for light push clients is enabled by default in nwaku-compose. + +## RLN Membership Management App + +### Functionality + +1. User can generate and insert an RLN membership. +2. User can extend an RLN membership. +3. User can withdraw an RLN membership deposit. +4. The generated credentials can be exported and then imported into `wakunode2`. + +### Usability + +1. User can see the state of their RLN membership. +2. User can manage their membership (register, extend, withdraw). + +### Reliability + +1. ... + +### Performance + +1. ... + +### Supportability + +1. Browser application, using web3 wallet browser extensions. + +### + (Privacy, Anonymity, Deployments) + +1. Deployed on https://rln.waku.org +2. Available for Status Network Testnet contracts. +3. Proof generation and validation is out of scope. \ No newline at end of file diff --git a/draft-roadmap/introduce_e2e_reliability_in_status.md b/draft-roadmap/introduce_e2e_reliability_in_status.md index 80ee855..c6ddba0 100644 --- a/draft-roadmap/introduce_e2e_reliability_in_status.md +++ b/draft-roadmap/introduce_e2e_reliability_in_status.md @@ -20,9 +20,13 @@ as well as in the browser for PoC Web Apps such as Qaku and Logos Forum. **GitHub Milestone and deliverables**: https://github.com/waku-org/pm/milestone/29 -## [End-to-end reliability protocol - Status integration]() +## [End-to-end reliability protocol - Status integration](https://github.com/waku-org/pm/issues/194) -(need to modify existing issue to the following template) +TODO: +- modify existing issue to the following template +- Potentially split this deliverable in two: + 1. initial integration in Status (this) + 2. recovery mechanisms (store query, etc) (new deliverable) **Owner**: core research