Merge pull request #331 from waku-org/new-rln-milestone

New RLN-related milestone from dogfooding
This commit is contained in:
fryorcraken 2025-08-05 14:49:32 +10:00 committed by GitHub
commit c2e3a050b8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 130 additions and 7 deletions

View File

@ -41,3 +41,4 @@ All Waku core FURPS are assumed to be deployed and enabled on The Waku Network.
- [Status Communities](application/status_communities.md) - [Status Communities](application/status_communities.md)
- [status-go](application/status_go.md) - [status-go](application/status_go.md)
- [Status Private Chats](application/status_private_chats.md) - [Status Private Chats](application/status_private_chats.md)
- [ERC-20 Testnet Token for RLN Deposit](application/erc-20_testnet_token_for_rln_deposit.md)

View File

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

View File

@ -22,6 +22,7 @@
1. New node setup with an RLN membership can be ready to verify RLN proof within 5s, 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)**. 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 ## Supportability

View File

@ -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 | | 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 | | 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 | | 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 | | 6 | [Harden RLN Testnet Deployment](harden_rln_testnet.md) | 30 Sep | 1*1.5m | 1*1m | | | TODO |
| 7 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 2*6w | 3*6w | | | 1.2 | | 7 | [Integrate RLN with Waku API](integrate_rln_with_waku_api.md) | 30 Sep | 1*1m | 1*2m | 2*2m | | | 1.7 |
| 8 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 1.4 | | 8 | [Streamline DevEx: Mobile, Rust and Web dev](streamline_dev_ex_local_dev_rust.md) | 30 Nov | | 2*6w | 3*6w | | | 1.2 |
| 9 | [Incentivisation and Marketplace Follow-up Outline](incentivisation_follow_up.md) | TBD | 2.5*5m | | | | | 3 | | 9 | [Extend Chat SDK with Group Conversations](extend_chat_sdk_with_group_conversations.md) | 19 Dec | | | | 2*3m | | 1.4 |
| 10 | [Nim Usage Improvements](nim_usage_improvements.md) | 19 Dec | | | 1*2m | | | 0.5 | | 10 | [Incentivisation and Marketplace Follow-up Outline](incentivisation_follow_up.md) | TBD | 2.5*5m | | | | | 3 |
| 11 | [BD - Acquire 10 Customers](acquire_first_10_customers.md) | 19 Dec | | | | 0.5*6m | 1*6m | 2.1 | | 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. ✱ 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) section core research (6)
Define Incentivisation for RLNaaS: 2025-07-01, 2025-08-01 Define Incentivisation for RLNaaS: 2025-07-01, 2025-08-01
Improve DevEx: 2025-08-01, 2025-08-31 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 Integrate RLN with Waku API: 2025-09-01, 2025-09-30
Mixnet: 2025-07-01, 2025-09-30 Mixnet: 2025-07-01, 2025-09-30
Incentivisation and Marketplace Follow-up: 2025-08-01, 2025-12-31 Incentivisation and Marketplace Follow-up: 2025-08-01, 2025-12-31

View File

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