Adding RLN FURPS

# Conflicts:
#	PROCESS.md
This commit is contained in:
fryorcraken 2025-05-27 13:38:55 +10:00
parent 9eaa9866db
commit 37ca9487d3
No known key found for this signature in database
GPG Key ID: A82ED75A8DFC50A4
4 changed files with 160 additions and 2 deletions

25
FURPS/TEMPLATE.md Normal file
View File

@ -0,0 +1,25 @@
# <Feature Name> FURPS
## Functionality
1. ...
## Usability
1. ...
## Reliability
1. ...
## Performance
1. ...
## Supportability
1. ...
## + (Privacy, Anonymity, Deployments)
1. ...

29
FURPS/core/rendezvous.md Normal file
View File

@ -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

100
FURPS/core/rln.md Normal file
View File

@ -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.

View File

@ -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