waku-org / pm

Project management, admin, misc
3 stars 1 forks source link

[Epic: Dogfooding] Deliver RLN v2 + RLN in resource-restricted to The Waku Network #168

Open alrevuelta opened 1 month ago

alrevuelta commented 1 month ago

Summary

Based on the work done on previous milestones that included both research and development:

This new milestone tracks the shipping of the above developed features i) RLNv2 and ii) RLN in resource-restricted clients into The Waku Network. See https://github.com/waku-org/research/issues/96 and https://github.com/waku-org/nwaku/issues/2345.

Note that both features are tracked together since they imply breaking changes in the smart contract.

Both changes will be introduced together to merge two backward incompatible changes into a single one, which has fewer effects on The Waku Network users.

Epics

rymnc commented 1 month ago

cc: @kaiserd, added vac acz milestone in https://github.com/logos-co/roadmap/pull/66/commits/986ebd59914f5e6790d48a622c09f19c95e6d33a

alrevuelta commented 1 month ago

Implement changes in zerokit RLNv2 (>0.4.0)

Required changes in zerokit done and merged: https://github.com/vacp2p/zerokit/pull/255

alrevuelta commented 1 month ago

Integrate RLNv2 into go-zerokit

done and merged: https://github.com/waku-org/go-zerokit-rln/pull/21 The main reason for integrating zerokit in go (go-zerokit) is that go allows to iterate faster and develop tooling for testing than in nim.

alrevuelta commented 1 month ago

Integrate custom witness for RLNv2 in go-zerokit

Done in https://github.com/waku-org/go-zerokit-rln/pull/22

alrevuelta commented 3 weeks ago

Deliver end-to-end PoC working in The Waku Network showcasing the new features.

Done here: https://github.com/alrevuelta/go-waku-light/pull/5

alrevuelta commented 2 weeks ago

New smart contract with both RLNv2 and RLN in resource-restricted clients changes:

Done by @rymnc here: https://github.com/waku-org/waku-rlnv2-contract

alrevuelta commented 2 weeks ago

Develop tooling in waku-simulator to allow rlnv2 testing

Done by @stubbsta here: https://github.com/waku-org/waku-simulator/pull/45

alrevuelta commented 1 week ago

Make RLNv2 the default waku RLN, removing feature flag and RLN v1

Done in here by @rymnc https://github.com/waku-org/nwaku/pull/2828

alrevuelta commented 1 week ago

Prepare testing plan for release v0.30.0 to test RLNv2 + onchain merkle trees:

Done by @stubbsta in https://www.notion.so/Waku-RLNv2-End-to-End-Testing-with-Waku-simulator-6f50a5613eb44ae38e2dbbcfa72b7417

alrevuelta commented 1 week ago

Documentation to use waku-simulator for testing

Done: https://waku-org.github.io/waku-simulator/

alrevuelta commented 4 days ago

Deploy and consider using a L2 testnet.

Deployed in PolygonzkEVM testnet: https://cardona-zkevm.polygonscan.com/address/0x4976df0f61135ef3e5720d92eade2e5f47a68ef9 by @rymnc

alrevuelta commented 4 days ago

Decide epoch size (rln-relay-epoch-sec) and user message limit (rln-relay-user-message-limit) for TWN

Done, parameters set for The Waku Network: https://github.com/waku-org/nwaku/pull/2843

alrevuelta commented 3 days ago

bug fixed

https://github.com/waku-org/nwaku/pull/2855

alrevuelta commented 1 hour ago

Come up with final gas estimation after the optimizations (RLN v2 + RLN in resource-restricted)

Here we show the results of forge test --gas-report -vv of the register function. It shows the gas consumption of the call for different tree sizes.

With 100k memberships

image

With 10k memberships

image

In both cases: