Run client-side experiments on CBT to test timeout cutoff and two guard use
We need to:
- Run guard-based onionperf instances with two guards
- Ensure onionperf is properly using two guards
- Check that timeout rate closely matches the expected 20% for regular and onion circs
- Verify that what BUILDTIMEOUT_SET reports is the real timeout rate
- Tune Xm and alpha estimation for different guard types and circ counts
- Do some tests changing CBT_DEFAULT_QUANTILE_CUTOFF to see how timeout rate changes.
- Investigate how changing the quantile cutoff to 60/70/80 changes performance metrics in onionperf (for 2-close, 2-far, and 2-mixed guards)
- Double-check that the same properties hold for onion service onionperf
- Compare this behavior to original for 1-close, 1-far guard
- Ensure that onionperf ignores measurements and timeouts, when no timeout is learned yet, while changing guards.
Note there is a separate set of work to test this parameter tuning globally in the consensus.
Some of these tests can be run with 'vanguards --enable-cbtverify --disable-vanguards'
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information