Treat Pluggable Transports as Individual Bridges
Right now we store the pluggable transports that a bridge supports as an attribute of a bridge. This is technically correct, however it also means that all OR ports and PTs are interchangable when we apply different filters. This leads to unnecessary address:port leakage. Two options I see are to
- Add some kludgey thing to track which properties of a bridges were distributed to a user
- Pretend that each PT is its own bridge and distribute them individually
Problem: The bridge and its PTs all have the same fingerprint. Solution: Tweak the hash before we place it in the ring?
Will this screw up or improve any metrics? If we're not careful this will mess up the bridge assignment file, so we should make sure that file doesn't change (serializing each bridge with its ring and its supported PTs).