Bandwidth weights absent when D=0
When the directory authorites vote that there are insufficient Exit nodes for them to be labled as both Exit and Guard, the authorities fail to add a bandwidth-weights line in consensus method 9. This has two problems:
-
We could actually create weights in may cases when this does happen.
-
This decision is made on the individual consensus votes, not the final consensus. There have been several situations so far when the authorites voted not to have Guard+Exit even though there was sufficient exit bandwidth in the consensus, and vice-versa.
The problem is that this check probably is a good idea to perform, because of the large numbers of existing clients that we want to avoid using Exits-as-Guards with until they update to the new weighting system.
The correct solution should be to tweak the Guard flag such that it produces a fixed amount of Guard-flagged nodes in the actual consensus. We should allow the weights themselves to handle what to do with Guard+Exit nodes.
However, because this is a mostly harmless result that just causes clients to revert to the old weights when it happens, and because a bit of work and thought is needed to decide how to properly allocate the Guard flag, we're not going to just do a quick fix and allow weights for the D=0 situation. We should fix this issue once we feel that enough clients have upgraded to 0.2.2.x for it to make sense to fix it properly.
[Automatically added by flyspray2trac: Operating System: All]