Skip to content

Not all relays get Stable flag #123

Description

@sporksmith

I think tornettools may have a similar issue to https://gitlab.torproject.org/tpo/core/chutney/-/work_items/40057

Basically, arti refuses to use relays without the Stable flag for some purposes; notably as hidden service rendezvous or intro points.

I'm not sure whether the c-tor client is affected. It's possible that it doesn't have this requirement or ignores it when TestingTorNetwork is set.

I have verified that in a small tornettools test run, some relays don't get the Stable flag.

It might be a good idea to set AuthDirVoteStableGuaranteeMinUptime in the authority's config files, which should ensure all relays get the Stable flag. Particularly if/when we want to include arti clients, but it might also be a good idea to check whether c-tor clients are affected by this.

Activity

  1. sporksmith commented on Jun 16, 2026

    @sporksmith
    ContributorAuthor

    The problem doesn't seem to crop up as much when all relays are started at once (as I think tornettools does?), though I'm not sure why.

    IIUC, in the absence of long-term reliability data, the authorities will give the Stable flag to relays that have a self-reported uptime of greater than the median or greater than AuthDirVoteStableGuaranteeMinUptime (default 30 days). I would think this would always result in half of the relays not getting the Stable flag when we don't override AuthDirVoteStableGuaranteeMinUptime, but it experimentally isn't quite that bad in practice if all relays are started at once. (I think the self-reported uptimes are rounded to the second; maybe they all or mostly end up tied with the median?)

  2. robgjansen commented on Jun 17, 2026

    @robgjansen
    Member

    We might as well set AuthDirVoteStableGuaranteeMinUptime in all cases so we're not left wondering about the more complex TestingTorNetwork, unless there are cases where setting it would cause a problem (do all recent versions of Tor support it)?

  3. sporksmith commented on Jun 29, 2026

    @sporksmith
    ContributorAuthor

    There's a little bit of analysis and discussion in #124. Letting @robgjansen handle a more thorough investigation and tuning, possibly rolling together with some other changes that may require some tuning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    Component

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions