From efacb7368661b753581a408d9f6ed6f7d2afd26e Mon Sep 17 00:00:00 2001 From: fryorcraken Date: Thu, 29 May 2025 15:49:49 +1000 Subject: [PATCH] rework RLN mainnet milestone --- FURPS/core/rln_relay.md | 6 +- FURPS/core/rln_smart_contract.md | 9 +- draft-roadmap/README.md | 3 +- draft-roadmap/TEMPLATE.md | 2 +- .../deploy_rln_onchain_tree_on_l2_testnet.md | 97 +++++++++++++++++++ 5 files changed, 105 insertions(+), 12 deletions(-) create mode 100644 draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md diff --git a/FURPS/core/rln_relay.md b/FURPS/core/rln_relay.md index bb41b61..43f9b63 100644 --- a/FURPS/core/rln_relay.md +++ b/FURPS/core/rln_relay.md @@ -15,11 +15,9 @@ ## 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, +1. 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, +2. In a network of 10k RLN Relay nodes, a spamming node will be disconnected from its peers in under 1 min. **(Vac-DST)** ## Supportability diff --git a/FURPS/core/rln_smart_contract.md b/FURPS/core/rln_smart_contract.md index 2b1e870..e6ce9e8 100644 --- a/FURPS/core/rln_smart_contract.md +++ b/FURPS/core/rln_smart_contract.md @@ -12,7 +12,6 @@ 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 @@ -20,7 +19,8 @@ ## Performance -1. ... +1. New node setup with an RLN membership can be ready to verify RLN proof within 5s, + no matter the size of the tree **(Vac-DST)**. ## Supportability @@ -28,7 +28,6 @@ ## + (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. +1. Smart Contracts are deployed on Linea Testnet. +2. TWN uses smart contracts deployed on Linea Testnet. diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 2e7826b..4501168 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -10,8 +10,7 @@ Testing out new format, once approved: - [Define and Implement Peer-To-Peer Reliability Strategies](./define_p2p_reliability.md) - [Introduce E2E Reliability in Status Communities](./introduce_e2e_reliability_in_status.md) -- Rendezvous TODO? (may be done) -- [Deploy RLN onchain tree on L2 testnet](TODO) +- [Deploy RLN onchain tree on L2 testnet](/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md) - [Integrate nwaku in Status Desktop, relay mode only](/draft-roadmap/integrate_nwaku_in_status_desktop_relay_mode_only.md) - [Define incentivization for RLNaaS](TODO) diff --git a/draft-roadmap/TEMPLATE.md b/draft-roadmap/TEMPLATE.md index 0e68b1e..526a5bd 100644 --- a/draft-roadmap/TEMPLATE.md +++ b/draft-roadmap/TEMPLATE.md @@ -15,7 +15,7 @@ **Feature**: []() **FURPS**: -- +- **Checklist**: - [ ] Specs: link to specs diff --git a/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md new file mode 100644 index 0000000..73dd56e --- /dev/null +++ b/draft-roadmap/deploy_rln_onchain_tree_on_l2_testnet.md @@ -0,0 +1,97 @@ +# Deploy RLN onchain tree on L2 Testnet + +This is a split of RLN mainnet milestone which grew too large in scope. + +Once complemented, the economical behaviour of RLN will have been specified, +implemented and discussed with the Status team. +An implementation of RLN for light clients will also be done, to demonstrate RLN’s UX with onchain Merkle tree. +Finally, the smart contract will be deployed on a Linea-based L2 testnet and used by The Waku Network. + +It will then be possible to design the usage of RLN in Chat SDK. + +**deliverables**: TODO + +## [Implement RLN smart contract for paid, multilevel memberships](https://github.com/waku-org/pm/issues/228) + +**Owner**: research + +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) + +**FURPS**: + +- F1. RLN rate limit can be defined in terms of multiple messages per epoch. +- F2. RLN rate limit is set at membership insertion +- F3. RLN initialization only requires Web3 RPC `call`s, no blockchain events are needed. +- F4. An ERC-20 token deposit is needed to insert a membership +- U1. Application developers can set RLN rate limit at insertion. + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [TWN supports RLN onchain tree and deposits, existing memberships only](https://github.com/waku-org/pm/issues/286) + +**Owner**: nwaku + +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) + +**FURPS**: + +- F3. RLN initialization only requires Web3 RPC `call`s, no blockchain events are needed. +- U2. User do not need to wait for merkle tree synchronization and building to start relaying + or sending messages. +- P1. New node setup with an RLN membership can be ready to verify RLN proof within 5s, + no matter the size of the tree **(Vac-DST)**. +- +1. Smart Contracts are deployed on Linea Testnet. +- +2. TWN uses smart contracts deployed on Linea Testnet. + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [Fallback strategy for Web3 RPC endpoints are implemented in nwaku]() + +**Owner**: nwaku + +**Feature**: [nwaku](/FURPS/application/nwaku.md) + +**FURPS**: + +- R1. Relay node can fallback to alternative RPC endpoints + if the primary Web3 RPC provider becomes unavailable. + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +## [RLNv2 Web management interface](https://github.com/waku-org/pm/issues/281) + +**Owner**: js-waku + +**Feature**: [RLN Membership Management](/FURPS/application/rln_membership_management.md) + +**FURPS**: + +- F1. User can generate and insert an RLN membership. +- F2. User can extend an RLN membership. +- F3. User can withdraw an RLN membership deposit. +- F4. The generated credentials can be exported and then imported into `wakunode2`. +- U1. User can see the state of their RLN membership. +- U2. User can manage their membership (register, extend, withdraw). +- +1. Deployed on https://rln.waku.org +- +2. Available for Status Network Testnet contracts. +- +3. Proof generation and validation is out of scope. + +For S1. Browser application, using web3 wallet browser extensions. + +**Checklist**: +- [ ] Specs: link to specs +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD)