js-waku
js-waku copied to clipboard
feat: add rpc url to nwaku, persist rln tree in docker and ci
Problem
Tests that run against cluster id 1 (The Waku Network) require running an nwaku node with a sepolia RPC url.
When adding this parameter, the nwaku node will not be "ready" (/health returns status 200) until the RLN tree is synced. If starting from scratch, this process takes a long time (up to 5 minutes, and will only take longer as more blocks are mined on Sepolia).
Solution
Add a step to the CI that:
- checks if the
rln_tree.dbis stored as an artifact. If so, pull it. - run an nwaku node in docker that mounts the
rln_tree.dbuntil the/healthendpoint returns 200 (basically syncs the rln_tree to latest block on sepolia) - store the synced
rln_tree.dbas an artifact
Notes
- Resolves #1914
Contribution checklist:
- [ ] covered by unit tests;
- [ ] covered by e2e test;
- [ ] add
!in title if breaks public API;
size-limit report 📦
| Path | Size | Loading time (3g) | Running time (snapdragon) | Total time |
|---|---|---|---|---|
| Waku node | 181.24 KB (0%) | 3.7 s (0%) | 17.4 s (-11.06% 🔽) | 21 s |
| Waku Simple Light Node | 181.32 KB (0%) | 3.7 s (0%) | 21.8 s (+4.35% 🔺) | 25.4 s |
| ECIES encryption | 23.12 KB (0%) | 463 ms (0%) | 6.1 s (+5.81% 🔺) | 6.6 s |
| Symmetric encryption | 22.53 KB (0%) | 451 ms (0%) | 2.4 s (-50.93% 🔽) | 2.8 s |
| DNS discovery | 72.5 KB (0%) | 1.5 s (0%) | 8.1 s (+4.11% 🔺) | 9.6 s |
| Peer Exchange discovery | 74.09 KB (0%) | 1.5 s (0%) | 6.2 s (-63.48% 🔽) | 7.7 s |
| Local Peer Cache Discovery | 67.63 KB (0%) | 1.4 s (0%) | 9.8 s (-33.36% 🔽) | 11.2 s |
| Privacy preserving protocols | 38.88 KB (0%) | 778 ms (0%) | 7.6 s (-35.25% 🔽) | 8.4 s |
| Waku Filter | 111.72 KB (0%) | 2.3 s (0%) | 18.5 s (+16.75% 🔺) | 20.8 s |
| Waku LightPush | 110.26 KB (0%) | 2.3 s (0%) | 19.2 s (-4.57% 🔽) | 21.4 s |
| History retrieval protocols | 110.76 KB (0%) | 2.3 s (0%) | 12.8 s (-11.58% 🔽) | 15 s |
| Deterministic Message Hashing | 7.24 KB (0%) | 145 ms (0%) | 1.6 s (-54.35% 🔽) | 1.8 s |