We are supposed to increase the rotation period of guard nodes from 2-3 months to 9-10 months, as per proposal 236. This is the ticket about this task.
This also should be deployed hand in hand with legacy/trac#9321 (moved), otherwise young guards will experience a big drop of clients.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items
0
Show closed items
No child items are currently assigned. Use child items to break down this issue into smaller parts.
Linked items
0
Link issues together to show that they're related.
Learn more.
Also, even though we already have a GuardLifetime consensus parameter, maybe it would be smarter to introduce a new consensus parameter for this switch, so that only upgraded clients actually switch to the new rotation period.
We merge legacy/trac#9321 (moved) to little-t-tor. This allows dirauths to publish consensuses with guardfraction info, and it also allows clients to understand them and tweak their path selection appropriately.
We deploy guardfraction script to all the authorities we can find. We give them some time to populate their consensus database, etc.
We get authorities to run a version of Tor with the legacy/trac#9321 (moved) code. They enable the feature so that consensuses get produced with GuardFraction items. Old clients ignore those items, upgraded clients ignore them too because the UseGuardFraction is still turned off.
Now we Tor developers can test the guardfraction code on the real network. We can manually turn on UseGuardFraction in our torrc, and check the logs to see if the new probabilities make sense. After this phase we should have a reasonable assurance that the code works.
Now it's time to turn the feature on for all upgraded clients. We can do this with 3 months of guard lifetime, or we can first up the guard lifetime to 9 months. It's useful in both cases.
We should decide whether we should do this final step when the legacy/trac#9321 (moved) code is in stable or in alpha. I think that alpha is fine, but this means that not all clients will switch to the new path selection logic immediately. This is not optimal because proposal 238 also updates the total bandwidth weights (G, M, E, D) according to guardfraction information, which basically assumes that all clients upgrade at the same time. In our case, this is probably not going to be true, which means that the Middle weight and the Exit weight will get overestimated, since they are going to drain some of the Guard+Middle weight and the Guard+Exit weight. From my discussion with Nick Hopper during the past dev meeting, we decided that the network should be able to handle this, and the situation will improve as more clients update. We maybe should think more about this.
Finally, I'm not sure if we need an alternative name for GuardLifetime so that only upgraded clients switch to the new rotation period. I don't think this is necessary since it's OK also for old clients to switch to the new rotation period, as long as there are enough upgraded clients out there doing the guardfraction path selection so that they fill the guard traffic gap.