Skip to content

Draft: Implement correct guard behavior when coming back online

Nick Mathewson requested to merge nickm/arti:timestamp into main

Our guard-spec says that we should mark all our primary guards as retriable if some guard succeeds when they are all down, and when we've been off the internet for a while.

This branch implements that behavior, first by adding code to check "when were we last on the internet", and second by using that to implement the right behavior for guards.

(I ran into an issue while implementing this behavior: whenever a guard succeeds, we have observed cells from it, which necessarily means that we are on the internet, which lets us conclude that a guard can never succeed if "we have been off the internet for a while." What we actually want to check is if a guard succeeds, if it was selected when we were off the internet for a while.)

This MR closes #179 (closed) and #216 (closed).

Merge request reports