From eb7690fecf8c79b496c4e80713373116c79060cd Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Tue, 9 Sep 2025 16:53:53 +0530 Subject: [PATCH 1/4] mix implementation and integration in js --- FURPS/core/mix.md | 3 ++ .../introduce_mixnet_for_message_sending.md | 30 +++++++++++++++++-- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/FURPS/core/mix.md b/FURPS/core/mix.md index dcd1f7e1..6f3b4bbe 100644 --- a/FURPS/core/mix.md +++ b/FURPS/core/mix.md @@ -6,6 +6,8 @@ 2. Nodes can discover other nodes that support mix using available peer discovery mechanisms 3. Client nodes can send light push requests over the mixnet before delivery to a service node. 4. Client nodes can receive a response to a light push request over the mixnet. +5. Browser clients can send light push requests over the mixnet before delivery to a service node. +6. Browser clients can receive a response to a light push request over the mixnet. ## Usability @@ -17,5 +19,6 @@ 1. `wakunode2` for intermediary and exit nodes. 2. nwaku CLI for sender nodes. +3. Browser based apps built using js-waku should support acting as entry nodes. ## + (Privacy, Anonymity, Deployments) diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 38125c08..90c52e8f 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -1,9 +1,11 @@ # Introduce Mixnet For Message Sending -**Estimated date of completion**: 30 Sep 2025 +**Estimated date of completion**: TBD(As it requires further study and analysis to determine estimate of new changes) **Resources Required for 2025H2**: + - 1 core research engineer for 3 months +- TBD (Would depend on who owns js implementation) A PoC implementation to improve anonymity in Waku message publishing by mixing Waku Lightpush requests and responses. @@ -18,9 +20,10 @@ See deliverables. ## Risks | Risk | (Accept, Own, Mitigation) | -|-----------------------------------------|--------------------------------------------------------------------| +| --------------------------------------- | ------------------------------------------------------------------ | | Dependency on mix library | Strong collaboration, integrate early, get involved behind the API | | Impact on latency and other UX elements | Run simulations and studies to understand impact | +| Unknowns on implementing js-mix | Further study and understanding of js-libp2p internals | ## Deliverables @@ -31,6 +34,7 @@ See deliverables. **Feature**: [Mix](/FURPS/core/mix.md) **FURPS**: + - F1. Relay nodes can mount mixnet protocol, acting as sender, intermediary or exit nodes. - F2. Nodes can discover other nodes that support mix using available peer discovery mechanisms - F3. Client nodes can send light push requests over the mixnet before delivery to a service node. @@ -40,6 +44,28 @@ See deliverables. - S2. nwaku CLI for sender nodes. **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) + +### [Implement libp2p mix in js-libp2p and integrate with lightpush in js-waku](https://github.com/waku-org/js-waku/issues/2634) + +**Owner**: TBD + +**Feature**: [Mix](/FURPS/core/mix.md) + +**FURPS**: + +- F1. Browser clients can discover other nodes that support mix using available peer discovery mechanisms +- F2. Browser clients can send light push requests over the mixnet before delivery to a service node. +- F3. Browser clients can receive a response to a light push request over the mixnet. + +- S1. Browser based apps built using js-waku should support acting as entry nodes. + +**Checklist**: + - [ ] Specs: link to specs - [ ] Code: link to GitHub issues/PRs/Epic - [ ] Dogfood: link to dogfooding session/artefact From 0aa79c298bd9302698a9ff94aedbfe100481f865 Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Wed, 10 Sep 2025 11:09:13 +0530 Subject: [PATCH 2/4] address comments --- FURPS/core/mix.md | 5 +++-- draft-roadmap/introduce_mixnet_for_message_sending.md | 8 ++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/FURPS/core/mix.md b/FURPS/core/mix.md index 6f3b4bbe..cc930fd3 100644 --- a/FURPS/core/mix.md +++ b/FURPS/core/mix.md @@ -6,8 +6,9 @@ 2. Nodes can discover other nodes that support mix using available peer discovery mechanisms 3. Client nodes can send light push requests over the mixnet before delivery to a service node. 4. Client nodes can receive a response to a light push request over the mixnet. -5. Browser clients can send light push requests over the mixnet before delivery to a service node. -6. Browser clients can receive a response to a light push request over the mixnet. +5. Browser clients can discover other nodes that support mix using available peer discovery mechanisms +6. Browser clients can send light push requests over the mixnet before delivery to a service node. +7. Browser clients can receive a response to a light push request over the mixnet. ## Usability diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 90c52e8f..f9565fdd 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -58,11 +58,11 @@ See deliverables. **FURPS**: -- F1. Browser clients can discover other nodes that support mix using available peer discovery mechanisms -- F2. Browser clients can send light push requests over the mixnet before delivery to a service node. -- F3. Browser clients can receive a response to a light push request over the mixnet. +- F5. Browser clients can discover other nodes that support mix using available peer discovery mechanisms +- F6. Browser clients can send light push requests over the mixnet before delivery to a service node. +- F6. Browser clients can receive a response to a light push request over the mixnet. -- S1. Browser based apps built using js-waku should support acting as entry nodes. +- S3. Browser-based apps on js-waku should support acting as entry nodes. **Checklist**: From c112640d9613005f5f36c090c54caf82ca33b1bd Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Thu, 11 Sep 2025 10:33:49 +0530 Subject: [PATCH 3/4] Apply suggestions from code review Co-authored-by: fryorcraken <110212804+fryorcraken@users.noreply.github.com> --- draft-roadmap/introduce_mixnet_for_message_sending.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index f9565fdd..9b1a95a7 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -50,7 +50,7 @@ See deliverables. - [ ] Dogfood: link to dogfooding session/artefact - [ ] Docs: links to README.md or docs.waku.org (TBD) -### [Implement libp2p mix in js-libp2p and integrate with lightpush in js-waku](https://github.com/waku-org/js-waku/issues/2634) +### [Implement and integrate libp2p mix in js-waku for light push](https://github.com/waku-org/js-waku/issues/2634) **Owner**: TBD @@ -58,11 +58,10 @@ See deliverables. **FURPS**: -- F5. Browser clients can discover other nodes that support mix using available peer discovery mechanisms -- F6. Browser clients can send light push requests over the mixnet before delivery to a service node. -- F6. Browser clients can receive a response to a light push request over the mixnet. -- S3. Browser-based apps on js-waku should support acting as entry nodes. +- P1. Payload (store query, light push query) are limited to 4kB + +- S3. Browser-based apps as sender nodes; light push only. **Checklist**: From 2ce478b0159f4eb95750a2a572ede8a5fddd1067 Mon Sep 17 00:00:00 2001 From: Prem Chaitanya Prathi Date: Fri, 12 Sep 2025 14:44:51 +0530 Subject: [PATCH 4/4] address comments --- FURPS/core/mix.md | 5 ++--- draft-roadmap/introduce_mixnet_for_message_sending.md | 3 +-- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/FURPS/core/mix.md b/FURPS/core/mix.md index cc930fd3..6d501360 100644 --- a/FURPS/core/mix.md +++ b/FURPS/core/mix.md @@ -6,9 +6,6 @@ 2. Nodes can discover other nodes that support mix using available peer discovery mechanisms 3. Client nodes can send light push requests over the mixnet before delivery to a service node. 4. Client nodes can receive a response to a light push request over the mixnet. -5. Browser clients can discover other nodes that support mix using available peer discovery mechanisms -6. Browser clients can send light push requests over the mixnet before delivery to a service node. -7. Browser clients can receive a response to a light push request over the mixnet. ## Usability @@ -16,6 +13,8 @@ ## Performance +- P1. Payload (store query, light push message) are limited to 4kB + ## Supportability 1. `wakunode2` for intermediary and exit nodes. diff --git a/draft-roadmap/introduce_mixnet_for_message_sending.md b/draft-roadmap/introduce_mixnet_for_message_sending.md index 9b1a95a7..da0006bc 100644 --- a/draft-roadmap/introduce_mixnet_for_message_sending.md +++ b/draft-roadmap/introduce_mixnet_for_message_sending.md @@ -58,8 +58,7 @@ See deliverables. **FURPS**: - -- P1. Payload (store query, light push query) are limited to 4kB +- P1. Payload (store query, light push message) are limited to 4kB - S3. Browser-based apps as sender nodes; light push only.