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