Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(rln-relay): group management interface #1370

Closed
3 tasks done
staheri14 opened this issue Nov 10, 2022 · 1 comment
Closed
3 tasks done

feat(rln-relay): group management interface #1370

staheri14 opened this issue Nov 10, 2022 · 1 comment
Assignees
Labels
track:rln RLN Track (Secure Messaging/Applied ZK), e.g. relay and applications

Comments

@staheri14
Copy link
Contributor

staheri14 commented Nov 10, 2022

Problem

Right now, group management logic is intertwined with the mounting process of rln-relay. Due to this, we currently have two different mounting procedures, namely, static and dynamic. This is while the two procedures only differ in the group management part and are almost identical in the rest. Sticking to this design means that in the future, if a different group management logic is to be introduced, a new mounting process should be implemented. This is against the modularity and extensibility of the design.

Suggested solution

Group management in Rln-relay can be treated as a stand-alone module whose sole responsibility is to obtain group-related updates. The updates then should be properly available to a waku-rln-relay node to consume.
The suggested solution is to define a proper group manager interface. Each WakuRLNRelay will hold a member field of that type. As a result, any implementation of that interface can be plugged into a WakuRLNRelay node without touching the rest of its internals. A WakuRLNRelay node then makes use of its group manager to get group updates and use them as necessary (e.g., update its Merkle tree).

Additional context

This is a significant step toward positioning RLNp2p as a stand-alone module with extended utilities like group management which is not available in the RLN library.

Acceptance criteria

  • Identifying an API for the group manager
  • Converting the dynamic on-chain group management logic to a separate module satisfying the said API
  • Updating the internals of rln-relay mounting procedure to access to the group updates through an instance of a group manager
@rymnc
Copy link
Contributor

rymnc commented Jan 16, 2023

Addressed in #1465. Will close this upon its merge.

@rymnc rymnc moved this to Review/QA in Vac Research Jan 16, 2023
@rymnc rymnc moved this from Review/QA to Done in Vac Research Jan 16, 2023
@rymnc rymnc closed this as completed Jan 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
track:rln RLN Track (Secure Messaging/Applied ZK), e.g. relay and applications
Projects
None yet
Development

No branches or pull requests

3 participants