Skip to content

docs(anoncomms): add AnonComms roadmap for Testnet v0.3#471

Draft
jm-clius wants to merge 8 commits into
v4from
anoncomms/roadmap-v03
Draft

docs(anoncomms): add AnonComms roadmap for Testnet v0.3#471
jm-clius wants to merge 8 commits into
v4from
anoncomms/roadmap-v03

Conversation

@jm-clius

@jm-clius jm-clius commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Add the Roadmap (FURPS and Deliverables) for AnonComms in Testnet v0.3 scope

@jm-clius jm-clius changed the title docs(anoncomms): add discovery FURPS and deliverables for v0.3 docs(anoncomms): add AnonComms roadmap for Testnet v0.3 Jun 11, 2026
4. Libp2p nodes can use a general service discovery API to discover peers with specific capabilities
5. The service discovery protocol adapts DISC-NG for Kad-DHT to ensure efficient service discovery
6. Client nodes can discover addresses of peers with specific capabilities without participating in the Kad-DHT
7. Service discovery correctly discovers all advertised peers in a topology of several thousand nodes

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think "all advertised peers" contradicts the protocol's early-termination design. It should be "up to F_lookup peers". F_lookup s current default value is 30. The protocol is designed to stop early — finding every single advertiser in the network is not the goal and would break the logarithmic scaling property

May be we can rewrite something like this:
Service discovery correctly discovers up to F_lookup peers for a given service in a topology of several thousand nodes.

- P2. Capability discovery performs better than discv5 to find a sparse service
- S1. Capability discovery can be benchmarked in large scale Delivery module simulations
- S2. Capability discovery can be benchmarked in a standalone p2p capability discovery module
- F7. Service discovery correctly discovers all advertised peers in a topology of several thousand nodes

@tinniaru3005 tinniaru3005 Jun 17, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can rewrite this part also to something like:
Service discovery correctly discovers up to F_lookup peers for a given service in a topology of several thousand nodes.
to better align with the protocol design


**FURPS**:

- P1. The service discovery module provides comparable performance to discv5 when all nodes support the same service

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When all nodes support the same service is exactly the scenario where service discovery has inherent overhead that discv5 does not — admission control, waiting times, ticket rounds, and K_register × m registration attempts per advertiser. The protocol is designed for the sparse case, not the popular one.

We can reframe as "service discovery performs within an acceptable overhead bound compared to discv5 for popular services"


**FURPS**:

- P3. Service discovery integrated in Logos Delivery provides comparable performance to discv5 when all nodes support the same service

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similarly here also we can reframe to clarify little on what comparable means as for all nodes participating in same service, ie, a popular service case, service discovery has extra overhead.

@tinniaru3005

Copy link
Copy Markdown

Thanks for working on this, @jm-clius . I left a few comments that I think could help clarify some of the deliverables.

3. Logos modules can use the service as client to obtain adequate registered RLN identities without interacting with the contract
4. The RLN membership allocation service can run as a standalone module or mounted on existing modules
5. Logos modules can read the on-chain Merkle root and proofs
6. The basic RLN membership management module can register RLN memberships on-chain on behalf of a Logos module

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

on behalf of a Logos module

Should we specify the which Logos module?


**FURPS**:

- F9. The full RLN module encapsulates Zerokit proof generation and verification, expanding the basic RLN membership management module

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am a big fan of the separation of concerns, but we also need to consider the performance overhead of generating proofs using logos core module cross-calls v.s. generating proofs within the same process (as is currently done in logos-delivery)

- [ ] Dogfood: link to dogfooding session/artefact
- [ ] Docs: links to README.md or other docs

### [Migrate Logos Delivery to LEZ-based RLN using the RLN membership management module](TBD: anoncomms-pm issue)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

**FURPS**:

- U2. Logos Delivery and Chat can use the service to obtain RLN memberships
- U5. Logos Delivery uses the basic RLN membership management module and LEZ-based RLN for all membership acquisition and management

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does this include storing the membership? i.e. instead of loading the identity secret from a local keystore to memory, logos-delivery would call the management module to load this value

**FURPS**:

- F6. The basic RLN membership management module can register RLN memberships on-chain on behalf of a Logos module
- F7. The basic RLN membership management module stores and manages RLN keys for a Logos module

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Something to consider is whether or not the RLN key should be stored in the accounts module

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants