Simulate how BridgeDB can identify stable bridges
While working on the Guard/Stable flag analysis (#2911 (moved)), I came up with a new notion of bridge stability: "A stable bridge relay should be running on the same IP address a few days after a client learns about the bridge and should be available most of the time in the upcoming weeks."
The idea is that there are two cases when a bridge that BridgeDB told us becomes useless: a) when the bridge isn't around much or b) when the bridge changes its IP address or port.
I suggest to make Tonga calculate two metrics for all bridges, similar to how the directory authorities calculate them for relays: a) Weighted Fractional Uptime (WFU) and b) Mean Time Between Address Change (MTBAC). Tonga then assigns a StableBridge flag to bridges with a WFU at least as high as the median WFU and a MTBAC at least as high as the median MTBAC. BridgeDB would give out at least one bridge with the StableBridge flag (instead of doing so for the Stable flag).
I'm going to evaluate this new flag by looking at the sanitized bridge descriptor archive of, say, the first half of 2011. I should be able to reconstruct when a bridge failed (dropped out of the bridge network status) and when it changed its address or port. The latter part may be difficult, because we're changing the key of the keyed hash function once per month. The result is going to be sets of bridges that would have gotten the StableBridge flag at any given time in the analysis interval. Then I'm going to look up the future WFU and the time until next address change (TUNAC). Ideally, most of the bridges with the StableBridge would have a WFU of 90% or more and a TUNAC of a few days or more.
Setting priority to major, because this is a deliverable for November 1, 2011.