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

chore(rln-relay): Requirements to consider RLN ready (non experimental) #1906

Closed
56 tasks done
rymnc opened this issue Aug 11, 2023 · 21 comments · Fixed by #2001
Closed
56 tasks done

chore(rln-relay): Requirements to consider RLN ready (non experimental) #1906

rymnc opened this issue Aug 11, 2023 · 21 comments · Fixed by #2001
Assignees
Labels
E:3.1: DoS requirements and design See https://github.com/waku-org/pm/issues/69 for details

Comments

@rymnc
Copy link
Contributor

rymnc commented Aug 11, 2023

Background

As discussed with @alrevuelta, following are the discussion points for rln-relay

Details

Acceptance criteria

  • Discussion about the above points, will be split into appropriate issues as required.
@alrevuelta
Copy link
Contributor

alrevuelta commented Aug 11, 2023

Adding also to 4. leaving this in only trace. Otherwise it is too verbose for debug and can really affect performance. Imagine 100 msg/second. There would be a line per message in DEBUG.

Adding:
4.2: Remove DEBUG from here and leave just TRACE.

@alrevuelta
Copy link
Contributor

alrevuelta commented Aug 14, 2023

Adding: 9. Sync from the deployment block instead of from genesis. Related to discussions in here

@alrevuelta
Copy link
Contributor

Adding 11. Add metric to show the amout of registered memberships in the tree.

@rymnc
Copy link
Contributor Author

rymnc commented Aug 18, 2023

added 13 and 14 to cut scope in nwaku

@alrevuelta
Copy link
Contributor

Added 15. Add metric with the total registered memberships in the contract

@alrevuelta
Copy link
Contributor

Added 16. "simulate" a message in the "publish message" rpc endpoint to detect if the message would be considered as spam. if so, return and error without publishing the message. like this we avoid unnecesary spam, and we error notifying that the message will never arrive due to rln rate limitation.

@rymnc
Copy link
Contributor Author

rymnc commented Aug 23, 2023

adding 17. flush_interval and 18. rln metadata upgrade

@rymnc
Copy link
Contributor Author

rymnc commented Aug 25, 2023

adding 19. rln tree persistence bug and 20. window of roots persistence

@alrevuelta
Copy link
Contributor

Renamed this issue to "Requirements to consider RLN ready (non experimental)". Note that this has becone an umbrela issue to track whats left to consider RLN ready and not experimental anymore.

@alrevuelta alrevuelta changed the title chore(rln-relay): improve mounting, and ordering of the rln-relay validator chore(rln-relay): Requirements to consider RLN ready (non experimental) Aug 28, 2023
@rymnc
Copy link
Contributor Author

rymnc commented Aug 29, 2023

added 22 to add comments to contract declarations

@rymnc
Copy link
Contributor Author

rymnc commented Aug 30, 2023

@alrevuelta re: 16, the publishing node does perform the validation before relaying it onto other peers - and if it is spam, it is dropped at the source
does that work?

@alrevuelta
Copy link
Contributor

the publishing node does perform the validation before relaying it onto other peers - and if it is spam, it is dropped at the source
does that work?

@rymnc Not sure what you mean. I meant something like this #1968

@alrevuelta
Copy link
Contributor

Added 23. "If your keystore has just 1 key, dont require the rln-relay-membership-index", just load the existing one. Only require that flag when having a keystore with multiple keys"

@rymnc
Copy link
Contributor Author

rymnc commented Sep 4, 2023

Please use the following contract from this point onwards - 0x0A988fd9CA5BAebDf098b8A73621b2AaDa6492E8

@alrevuelta
Copy link
Contributor

Added "25. Add a check isRlnInSync() function (or similar) that returns true if synced to the latest head or false if rln tree is not in sync with latest head. + use it in apis (so that we error if rln is not in sync)"

Requirement for 8.

@rymnc
Copy link
Contributor Author

rymnc commented Sep 5, 2023

may I suggest that we move 2 => to another issue since it is not directly related to the feature set that rln-relay provides? it would more likely be a part of the refactor that @Ivansete-status mentioned in #1966 (review)

@alrevuelta
Copy link
Contributor

alrevuelta commented Sep 5, 2023

may I suggest that we move 2 => to another issue since it is not directly related to the feature set that rln-relay provides? it would more likely be a part of the refactor that @Ivansete-status mentioned in #1966 (review)

yep, lets track 2 separately. the important thing was ordered validators, and thats already covered.

@rymnc
Copy link
Contributor Author

rymnc commented Sep 5, 2023

moved to #1992

@alrevuelta
Copy link
Contributor

alrevuelta commented Sep 7, 2023

Added 27 and 28
#2002
#2008

@oskarth
Copy link
Contributor

oskarth commented Sep 13, 2023

Hey guys, awesome work on RLN, really cool to see the all progress being made :)

I don't know exactly what litmus test you are using to distinguish production-ready/experimental etc, but just wanted to point out that Zerokit depends on ark-circom which depends on ark-groth16 https://github.com/arkworks-rs/groth16#ark-groth16, with the current status:

WARNING: This is an academic proof-of-concept prototype, and in particular has not received careful code review. This implementation is NOT ready for production use.

Probably not relevant at this stage for RLN, but good to keep an eye out from a security POV when it comes to real funds. A lot of people are relying on above library afaik (e.g. Worldcoin went to production with it, maybe others too). Also for your interest I believe PSE is investing in arkworks and would also be open to a security audit of a subset of arkworks libraries.

(This comment probably belong upstream in Zerokit repo but saw this linked from Twitter so I'll just drop it in here as a FYI).

@alrevuelta
Copy link
Contributor

alrevuelta commented Sep 18, 2023

Weekly Update

  • achieved: waku rln is not an experimental feature anymore, and is part of nwaku code base. from now on experimental features are hidden behind a flag and not in different build

@chair28980 chair28980 added E:3.1: DoS requirements and design See https://github.com/waku-org/pm/issues/69 for details and removed E:2023-rln labels Sep 19, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
E:3.1: DoS requirements and design See https://github.com/waku-org/pm/issues/69 for details
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

4 participants