--- title: "2024-03-04 Vac weekly" tags: - "vac-updates" date: 2024-03-04 lastmod: 2024-03-04 draft: false --- ## Vac 2024/03/04 ### vac:p2p: - `nimlibp2p:vac:webrtc-transport` - Sctp and Dtls client done: https://github.com/status-im/nim-webrtc/pull/5 - Adds a lot of comments some refactoring to improve (I hope) the readability https://github.com/status-im/nim-webrtc/pull/6 - Closing the streams/connections: starts to test and think about it to make it bulletproof - `nimlibp2p:vac:maintenance` - Investigating issues related to https://github.com/status-im/nim-libp2p/pull/1032 ### vac:tke: - `nomos:tdc-objectives` - expanded the objectives & requirements part of the TDC (@Frederico) - `codex:cdx` - incorporated into Codex Litepaper all material about Codex on GitHub (@Frederico) - reviewed the causal loop diagragam for Codex (@Frederico) - reviewed the stock and flow diagram for Codex (@Frederico) - `waku:rln-membership:` - Prepare a summary of the RLN membership model including user journey mapping (@Martin) - Review the pricing of Farcaster, etc. (@Martin) - `waku:general-incentives` - Follow up with general research into Waku strategy based on the IFT strategy call. (@Martin) - `status:SNT-staking` - Continue the review of the staking contract (@Martin) - Understand the severity of precision loss (due to Solidity constraints) and resulting discrepancy between the contract logic and radCad simulations (@Martin) - Assist the SC team in further checks and definition of testing scenarios (@Martin) ### vac:dst: - `eng-10ktool:vac:bandwidth-test` - Work on plotting module in the Kubernetes framework - Modified main yaml to add plotting options - Created plotter class to group there all functionalities - Structured plotter to be able to group several experiments in same plot in an automatic manner - Lots of calls with Wings to test the lab, launch simulations, discuss about problems and so on. - Deployed iBGP for Calico - Which got the IP addresses wrong at first, fixed by editing Node annotations - Later removed BGP due to numerous issues with it - Numerous, numerous Kubernetes tests and improvements - Tried Cilium briefly - Switched from Cilium to Calico - Reinstalled entire cluster as Calico transition broke things (due to CNI switch without reinstall being a bad idea) - Scale testing revealed that Linux has limits per node that prevent us from scaling beyond about ~1400 waku nodes per physical host when running on bare metal - Created a new architecture for running tests - Hybrid between bare metal and virtualised Kubernetes - Rook-Ceph (Storage) and Prometheus-Thanos (Metrics) stacks run on bare metal, as does all management - The rest runs in a KubeVirt based deployment system. - We deploy what we're calling "opal fragments" (fractions of the Opal Kubernetes cluster) - Kubernetes workers dedicated solely to running nwaku deployments. - Can deploy 5000 nodes in < 8 minutes, with stable mesh forming around 25 minutes into deployment - Experimented with various opal fragment deployments - 56x nodes seems to be the most stable configuration - Much higher than this (especially with poor allocation of cores) causes instability in the CNI (Calico) - Which causes monitoring issues as nodes drop out of Prometheus monitoring - And can mess with the mesh - Instability is lower with lower # of connections - Debugging CoreDNS issues - believe we've found a bug in CoreDNS and its interactions with HeadlessServices, returning NXDOMAIN even for valid hostnames about 1 in 5.5 to 6 queries. - Ran repeated simulations to get a stable simulation for testing. - Built a new "accelerated bootstrap" mode for simulations ### vac:qa: - `waku:test-automation-js-waku` - Fix flaky [tests](https://github.com/waku-org/js-waku/pull/1869)(@Florin) - Close [milestone](https://github.com/logos-co/roadmap/pull/39)(@Florin) - `waku:test-automation-sharding` - Improve static sharding and autosharding tests coverage for js-waku(@Florin) - Issue reported:(@Florin) - https://github.com/waku-org/js-waku/issues/1874 - `waku:interop-testing` - Waku node health/reliability(@Roman) - Issue updated: - https://github.com/waku-org/go-waku/issues/1014) - `waku:test-automation-go-waku` - Improve unit test coverage for [peermanager](https://github.com/waku-org/go-waku/pull/1035)(@Roman) - Issue updated: - https://github.com/waku-org/go-waku/issues/1044 - `waku:test-automation-nwaku` - Peer Exchange(@Alex) - [Resultify fetchPeerExchangePeers](https://github.com/waku-org/nwaku/pull/2486) - Discv5(@Alex) - Implement tests and simplify and [reduce code](https://github.com/waku-org/nwaku/pull/2487) - Peer & Communication Management(@Alex) ### vac:acz: - `rlnp2p:waku:rln-relay-v2` - improved testing for rln-v2 onchain mode: https://github.com/waku-org/nwaku/pull/2482 - improved testing for rln-v2 static/offchain mode: https://github.com/waku-org/nwaku/pull/2484 (pending review) - `secure-channels:waku:ethereum-chat` - Finish the presentation for the Logos Research Call. - Improve the research paper. - Considering replacing MLS with another protocol. - Add an overview on anonymity and SIWE integration in [notion.](https://www.notion.so/Overview-of-the-ERC-5564-Stealth-Addresses-ca3c16fbd9344d32933bf09791180f17?pvs=4) - Study on hierarchical deterministic wallets for anonymous login. - Study the openmls [crate](https://crates.io/crates/openmls) for demo implementation. - `zerokit:vac:maintenance` - taken a look on this issue https://github.com/vacp2p/zerokit/issues/47 - `admin/misc` - assist with waku research paper - stealth commitment protocol over waku PoC: https://github.com/waku-org/nwaku/pull/24 ### vac:sc:: - `status:community-contracts-token-import` - finished PR erc20/erc721 deposit PR - implemented withdraw function for tokens sent directly to the contract https://github.com/status-im/communities-contracts/pull/59 - `status:staking-contracts-v1` - Reviewed and merged PRs - Continue work on coverage - Implemented additional deployment script for new `StakeManager`s - https://github.com/logos-co/staking/pull/72 - Worked on fixing certora specs - https://github.com/logos-co/staking/pull/73 - https://github.com/logos-co/staking/pull/74 - https://github.com/logos-co/staking/pull/75 - Fixed a bug that allows `StakeManager`s to reset another one's `Stakemanager`s epoch while it's in migration - https://github.com/logos-co/staking/pull/76 - `status:community-contracts-maintenance` - Release version 1.0.0 of communities contracts - Changelog: https://github.com/status-im/communities-contracts/blob/main/CHANGELOG.md#100-2024-02-28 - `vac:maintainance/misc` - Worked on Logos Research call presentation ### vac:rfc: - `rfc-process-restructuring` - worked rfc process - https://github.com/vacp2p/rfc-index/pull/8 - worked on pull request for rfc-index - https://github.com/vacp2p/rfc-index/pulls ### vac:dr: - `valpriv:vac:val-priv-net` - Refined and working on https://docs.google.com/document/d/15X4vJTK_Hr3g3K01XF77R3KCqLI8LIm3/edit - `valpriv:vac:tor-push-poc` - Successfully merged , built the torpush while rebasing from stable nimbus. - `valpriv:vac:tor-push-paper` - Improved and revised the draft. like citing tor related attacks with relevance for tor push while making many other minor points and clarification https://www.overleaf.com/project/6499e467346d9f56b2971caa - Created a notion page on findings on large message handling: https://www.notion.so/Performance-Evaluation-of-Different-Pull-Requests-for-Large-Message-Handling-4d47672820114732b9f248f6bf18946e - Merged [PR-1027](https://github.com/status-im/nim-libp2p/pull/1027), [PR-1028](https://github.com/status-im/nim-libp2p/pull/1028) and used TxTime sorting on SendPeerList. Additionally used semaphors to limit simultaneous transmissions. Improves results in some cases and shows large fluctuations in other messages - Configured shadow simulation for variable latency and bandwidths. Trying to build some automated scripts (requires adding edges among all peers, and adding all nodes with variable latency/bandwidth). NetworkX package in python can help writing network in gml format ### vac:nes: - `state-separation:vac:state-separation-doc` - Researched and discussed about monitoring issues and how to adapt solutions to our proposal (Moudy + Marvin) - Researched and discussed about nullifeir problems and how to solve them (Moudy + Ugur) - Studied untraceability and unlinkability features of PDAGs to create our version of PDAGs (Ugur) - Stared working on reward mechanisms for monitoring (Marvin) - `proofsystems:vac:research-existing-proof-systems` - Finished writing Reverie writeup (Rostyslav) - `proofsystems:vac:benchmarks` - Worked on refining the Benchmark paper and drafted a full version (Moudy) - Went through the Benchmarks paper and discussed about modifications to make and general output (Moudy + Rostyslav) - Modified Halo2 SHPLONK, Halo2 GWC and Plonky2 circuits (Rostyslav) - Prepared a paragraph on Nova vs SuperNova difference and Nova vs Halo2 recursion (Rostyslav)