A NetDir should not be "usable" until we have descriptors for all our primary guards
When we're bootstrapping, if we have a selection of guards, we should consider a NetDir unusable until we have descriptors for all of our primary guards.
-
Make sure that 'Data' guard usage requires that a relay be definitely available. -
Add a function to ask, "Do all primary guards have a definite current Listed status". (Unknown listed corresponds to 'missing microdescriptor' -
Don't replace primary guards when their listed status is unknown. (This may be tricky and might have to turn into another ticket.) -
Tell the dirmgr not to replace a netdir until all primary guards have known listed status in the new candidate netdir.
Edited by Nick Mathewson