Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion FURPS/core/mix.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,24 @@
## Functionality

1. Relay nodes can mount mixnet protocol, acting as sender, intermediary or exit nodes.
2. Nodes can discover other nodes that support mix using available peer discovery mechanisms
2. Nodes can connect to other nodes that support mix using static configuration.
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. Nodes can discover other nodes that support mix using available peer discovery mechanisms.

## Usability

## Reliability

## Performance

- P1. Payloads are limited to 4kB

## Supportability

1. `wakunode2` for intermediary and exit nodes.
2. nwaku CLI for sender nodes.
3. Browser based apps built using js-waku support acting as entry nodes.
4. Browser based apps built using js-waku support discovering mix nodes using available peer discovery mechanisms.

## + (Privacy, Anonymity, Deployments)
9 changes: 6 additions & 3 deletions draft-roadmap/introduce_mixnet_for_message_sending.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Introduce Mixnet For Message Sending

**Estimated date of completion**: 30 Sep 2025
**Estimated date of completion**: 10 Oct 2025

**Resources Required for 2025H2**:

- 1 core research engineer for 3 months

A PoC implementation to improve anonymity in Waku message publishing by mixing Waku Lightpush requests and responses.
Expand All @@ -18,7 +19,7 @@ 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 |

Expand All @@ -31,15 +32,17 @@ 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
- F2. Nodes can connect to other nodes that support mix using static configuration.
- F3. Client nodes can send light push requests over the mixnet before delivery to a service node.
- F4. Client nodes can receive a response to a light push request over the mixnet.

- S1. `wakunode2` for intermediary and exit nodes.
- S2. nwaku CLI for sender nodes.

**Checklist**:

- [ ] Specs: link to specs
- [ ] Code: link to GitHub issues/PRs/Epic
- [ ] Dogfood: link to dogfooding session/artefact
Expand Down
68 changes: 68 additions & 0 deletions draft-roadmap/mixnet_usage_improvements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
# Add peer discovery to mixnet and support browser

**Estimated date of completion**: 31 March 2026

**Resources Required for 2025H2**:

- 1 core research engineer for 5 months

Peer discovery for mixnet was descoped from the previous milestones due to upcoming challenges around ENR usage and modification to libp2p needed to support mix peers in rendezvous.

Web apps have been a strong dogfooding and adoption driver for Waku, especially for edge nodes. Adding mix will not only enable wider dogfooding, but also increase anonymity for browser users.

## Strategic Objective

Logos Vision: Core Values Alignment

## FURPS

See deliverables.

## Risks

| Risk | (Accept, Own, Mitigation) |
| --------------------------------------- | ------------------------------------------------------------------ |
| Impact on latency and other UX elements | Run simulations and studies to understand impact |
| Unknowns in implementing js-mix | Further study and understanding of js-libp2p internals |
| Possible `exit==destination` in dependency library impact existing implementation | Frequent syncing with Vac and p2p team to understand impact and progress |

## Deliverables

### [Implement and integrate libp2p mix in js-waku for light push](https://github.com/waku-org/js-waku/issues/2634)

**Owner**: Core Research

**Feature**: [Mix](/FURPS/core/mix.md)

**FURPS**:

- P1. Payloads are limited to 4kB

- S3. Browser based apps built using js-waku support acting as entry 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 basic discovery for mix]()

**Owner**: Core Research

**Feature**: [Mix](/FURPS/core/mix.md)

**FURPS**:

- F5. Nodes can discover other nodes that support mix using available peer discovery mechanisms.

- S4. Browser based apps built using js-waku support discovering mix nodes using available peer discovery mechanisms.

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