Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Trac Trac
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Legacy
  • TracTrac
  • Issues
  • #16954
Closed (moved) (moved)
Open
Issue created Sep 01, 2015 by teor@teor

Refactor chutney networks: increase configurability, reduce code duplication

Refactor the existing chutney networks to increase configurability and reduce code duplication. Make it easier to mix and match particular authority, middle relay, client (standard, bridge, IPv6 bridge) and endpoint (exit, hidden service) nodes. Also make version mixing easier. Have a replaceable minimal default? 3 authorities, 1 client, 1 bridge client, 1 bridge, 1 middle, 1 exit, 1 hs

  • each network includes 3 authorities, 1 client or bridge client, 1 exit or hs, and however many middles are required to do a fast bootstrap (assuming reachability)
  • work out a way to select between client / bridge client, and exit or hs endpoints
  • create a way to do a full bootstrap (no assuming reachability) by flipping one setting (change torrc options, add middle relays to some minimum of auth + exit + middle: 4? 5?)
  • work out a way to add IPv6 bridges, old tor versions, and other features I'm forgetting
  • work out a way to scale network size by multiplication, either of all nodes, or of particular node roles (start point, relay, end point), or of individual node configurations
  • work out what syntax Python needs to include one configuration in another Maybe it could look like this:
  • core: authorities, non-exit relays?
  • client: client, bridge, IPv6 bridge (choose at least one)
  • endpoint: exit, hs (choose at least one)
  • bootstrap: fast or full (choose one)
  • version: built, system (choose at least one) Then combined to give us all the networks that currently exist, without needing to cut and paste between network configurations.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking