diff --git a/FURPS/README.md b/FURPS/README.md index 64265d5..541d221 100644 --- a/FURPS/README.md +++ b/FURPS/README.md @@ -40,4 +40,5 @@ All Waku core FURPS are assumed to be deployed and enabled on The Waku Network. - [Signal Network](application/signal_network.md) - [Status Communities](application/status_communities.md) - [status-go](application/status_go.md) -- [Status Private Chats](application/status_private_chats.md) \ No newline at end of file +- [Status Private Chats](application/status_private_chats.md) +- [ERC-20 Testnet Token for RLN Deposit](application/erc-20_testnet_token_for_rln_deposit.md) \ No newline at end of file diff --git a/FURPS/application/erc-20_testnet_token_for_rln_deposit.md b/FURPS/application/erc-20_testnet_token_for_rln_deposit.md new file mode 100644 index 0000000..62fd249 --- /dev/null +++ b/FURPS/application/erc-20_testnet_token_for_rln_deposit.md @@ -0,0 +1,22 @@ +# ERC-20 Testnet Token for RLN Deposit + +## Functionality + +1. Contract owner can mint tokens to any address for free. +2. White-listed wallet addresses can mint tokens to any address for free. +3. Contract owner can add or remove wallet addresses to the white-list. +4. Eth (Sepolia) is burnt to mint tokens to any address. + +## Usability + +1. Token name is `TST`. +2. Usage of Metamask Faucet (usually 0.1 Linea Sepolia Eth) should enable enough `TST` token minting to acquire 2-3 RLN memberships. + +## Reliability + +## Supportability + +## + (Privacy, Anonymity, Censorship-Resistance, Deployments) + +1. Deployed on Linea Sepolia. +2. Used as ERC-20 deposit token for Linea Sepolia RLN smart contract deployment. \ No newline at end of file diff --git a/FURPS/core/rln_smart_contract.md b/FURPS/core/rln_smart_contract.md index 0ef8d3e..8353e02 100644 --- a/FURPS/core/rln_smart_contract.md +++ b/FURPS/core/rln_smart_contract.md @@ -22,6 +22,7 @@ 1. New node setup with an RLN membership can be ready to verify RLN proof within 5s, no matter the size of the membership set **(Vac-DST)**. +2. Rate limit variables, in combination with good defaults on software side, enable around 5,000 registrations. ## Supportability diff --git a/draft-roadmap/README.md b/draft-roadmap/README.md index 7a76ccb..1422e8f 100644 --- a/draft-roadmap/README.md +++ b/draft-roadmap/README.md @@ -111,12 +111,13 @@ Note: low allocation on nwaku due to | 3 | [Introduce mixnet for message sending](introduce_mixnet_for_message_sending.md) | 30 Sep | 1*3m | | | | | 0.7 | | 4 | [Formalize and Expand Waku Web Apps](formalize_and_expand_waku_web_apps.md) | 19 Dec | | | | 1.5*6m | | 2.1 | | 5 | [Create Chat SDK MVP](create_chat_sdk_mvp.md) | 30 Sep | | | | 3*3m | | 2.1 | -| 6 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 2*2m | | | 1.7 | -| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 2*6w | 3*6w | | | 1.2 | -| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 1.4 | -| 9 | [Incentivisation and Marketplace Follow-up Outline](incentivisation_follow_up.md) | TBD | 2.5*5m | | | | | 3 | -| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | | 0.5 | -| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | 2.1 | +| 6 | [Harden RLN Testnet Deployment](harden_rln_testnet.md) | 30 Sep | 1*1.5m | 1*1m | | | TODO | +| 7 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 2*2m | | | 1.7 | +| 8 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 2*6w | 3*6w | | | 1.2 | +| 9 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 1.4 | +| 10 | [Incentivisation and Marketplace Follow-up Outline](incentivisation_follow_up.md) | TBD | 2.5*5m | | | | | 3 | +| 11 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | | 0.5 | +| 12 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | 2.1 | ✱ Capacity: How may people assigned in a 6 months window. Adjusted to 70% allocation for support. @@ -138,6 +139,7 @@ gantt section core research (6) Define Incentivisation for RLNaaS: 2025-07-01, 2025-08-01 Improve DevEx: 2025-08-01, 2025-08-31 + Harden RLN Testnet Deployment: 2025-08-01, 2025-09-30 Integrate RLN with Waku API: 2025-09-01, 2025-09-30 Mixnet: 2025-07-01, 2025-09-30 Incentivisation and Marketplace Follow-up: 2025-08-01, 2025-12-31 diff --git a/draft-roadmap/harden_rln_testnet.md b/draft-roadmap/harden_rln_testnet.md new file mode 100644 index 0000000..95ee7d6 --- /dev/null +++ b/draft-roadmap/harden_rln_testnet.md @@ -0,0 +1,97 @@ +# Harden RLN Testnet Deployment + +**Estimated date of completion**: 30 Sep 2025 + +**Resources Required for 2025H2**: +- 1 js-waku dev for 4 weeks. +- 1 core researcher for 6 weeks. + +The recent deployment and dogfooding of the [new RLN smart contract](https://github.com/waku-org/pm/milestone/34) on Linea Sepolia has unveiled several issues: + +- Attempt to use a JavaScript RLN library in https://rln.waku.org for credential generation led to interop issue with nwaku/zerokit +- Some zerokit quirk around endianness that is different from Web3 RPC practice +- Spamming of the contract due to "free mint" of the Sepolia ERC-20 token (representing DAI for test purposes) + +With this milestone, we tackle the lesson learned from dogfooding by: + +- Using zerokit in the browser, and working with Vac-ACZ team to reach adequate UX +- Apply restrictions on testnet contract to allow dogfooding, without exhausting the rate limit due to the fact that testnet is free (as in cheap). + +## Strategic Objective + +Logos Vision: Core Values Alignment + +## FURPS + +- [RLN Membership Management](/FURPS/application/rln_membership_management.md): R1 + +## Risks + +| Risk | (Accept, Own, Mitigation) | +|------------------------|------------------------------------------------------------------------------------------------------------------| +| Smart contract Changes | Iterative delivery of smart contract changes to allow dogfooding without excessive smart contract logic | +| Zerokit | Close collaboration with Vac-ACZ and clear expression of [requirements](https://github.com/waku-org/pm/pull/329) | + +## Deliverables + +### Zerokit is used in the Browser for Credentials Management + +**Owner**: js-waku + +**Feature**: [RLN Membership Management](/FURPS/application/rln_membership_management.md) + +**FURPS**: +- R1. Import and exports are interoperable across all implementations. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) + +### Minting of (Sepolia) ERC-20 Tokens for RLN Deposits is permissioned + +**Owner**: core research + +**Feature**: [ERC-20 Testnet Token for RLN Deposit](/FURPS/application/erc-20_testnet_token_for_rln_deposit.md) + +**FURPS**: +- F1. Contract owner can mint tokens to any address for free. +- F2. White-listed wallet addresses can mint tokens to any address for free. +- F3. Contract owner can add or remove wallet addresses to the white-list. +- F4. Eth (Sepolia) is burnt to mint tokens to any address. + +- U1. Token name is `TST`. + +- +1. Deployed on Linea Sepolia. +- +2. Used as ERC-20 deposit token for Linea Sepolia RLN smart contract deployment. + +**Feature**: [RLN Smart Contract](/FURPS/core/rln_smart_contract.md) + +- P2. Rate limit variables, in combination with good defaults on software side, enable around 5,000 registrations. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) +- +### Minting of (Sepolia) ERC-20 Tokens for RLN Deposits Burns Sepolia Eth + +**Owner**: core research + +**Feature**: [ERC-20 Testnet Token for RLN Deposit](/FURPS/application/erc-20_testnet_token_for_rln_deposit.md) + +**FURPS**: +- F3. Eth (Sepolia) is burnt to mint tokens to any address. + +- U2. Usage of Metamask Faucet (usually 0.1 Linea Sepolia Eth) should enable enough `TST` token minting to acquire 2-3 RLN memberships. + +- +1. Deployed on Linea Sepolia. +- +2. Used as ERC-20 deposit token for Linea Sepolia RLN smart contract deployment. + +**Checklist**: +- [ ] Specs: link to specs and/or API definition +- [ ] Code: link to GitHub issues/PRs/Epic +- [ ] Dogfood: link to dogfooding session/artefact +- [ ] Docs: links to README.md or docs.waku.org (TBD) \ No newline at end of file