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'
See also:
- https://trac.torproject.org/projects/tor/wiki/org/roadmaps/CoreTor/PerformanceExperiments
- https://trac.torproject.org/projects/tor/wiki/org/roadmaps/CoreTor/PerformanceMetrics
- https://gitlab.torproject.org/tpo/metrics/onionperf/-/issues/33399
- https://gitlab.torproject.org/tpo/metrics/onionperf/-/issues/33420
- https://gitlab.torproject.org/tpo/metrics/onionperf/-/issues/33421
- https://github.com/mikeperry-tor/vanguards/blob/master/src/vanguards/cbtverify.py
Edited by George Kadianakis