---
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)


