## When all consensus bandwidths are zero, should Tor still respect bandwidth weights?

In test networks with all-zero bandwidths, Tor chooses nodes uniformly at random. Instead, Tor should probably respect the bandwidth weights for guards, middles and exits.

We could do this by modifying smartlist_choose_node_by_bandwidth_weights() and compute_weighted_bandwidths() to act as if all bandwidth weights are N rather than zero. N should be chosen so that typical bandwidth weights are preserved (typical weights in this case are 1, 1/3, and 0). So let's choose 30000, like the existing non-bandwidth code.

Split off #23318 (moved).

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information