Opened 4 years ago

Last modified 10 months ago

#12506 assigned enhancement

Separate BridgeDB databases from distributors

Reported by: isis Owned by: isis
Priority: High Milestone:
Component: Obfuscation/BridgeDB Version:
Severity: Normal Keywords: bridgedb-dist, bridgedb-db, bridgedb-0.3.3, bridgedb-1.0.x, isis2015Q1Q2, isisExB, isisExC, TorCoreTeam201608
Cc: isis, sysrqb Actual Points:
Parent ID: Points:
Reviewer: Sponsor:

Description

What was originally called "BridgeDB" is essentially two very different systems, which should be kept separate, and should be runnable on separate machines:

  1. BridgeDB descriptor parsers, databases, and hashrings.

This part of BridgeDB's system takes the bridge descriptor files received from the BridgeAuthority (Tonga), parses them, shoves them into databases, and assigns them to the hashrings of the various bridge distributors.


  1. BridgeDB distributors.

This part of BridgeDB's system distributes the bridges to clients, using various mechanisms. This would currently be the bridgedb.Dist.EmailDistributor which replies to email requests for bridges, and the bridgedb.Dist.IPBasedDistributor which runs the web interface. Each distributor listens for clients' requests and responds with bridges from that distributor's hashring, as appropriate.


Child Tickets

Change History (5)

comment:1 Changed 4 years ago by isis

Status: newassigned

This is currently blocked on #9380 and #12505.

comment:2 Changed 4 years ago by isis

Keywords: isis2015Q1Q2 isisExB isisExC added

comment:3 Changed 3 years ago by isis

Keywords: bridgedb-0.3.3 added

While working on #12505, I realised that all of the work for #12505, #12506 (this ticket), #11330, and #12029 are all closely coupled, i.e. something which should be committed as part of the work for one ticket would often depend on a specific commit from the changes for another ticket, and then depend on something else from one of the other tickets, and so on. Because of this, I did all my development for all four tickets in one branch.

I've finally separated out the changes for just this ticket, and put them in their own fix/12506-separate-dist-dirs branch, which is now being merged to develop for BridgeDB-0.3.3. This does not conclude the work on this ticket, however, it only constitutes preliminary changes that the other tickets depend upon, mainly, splitting apart the code for the email and HTTPS distributors so that each is self-contained within its own directory.

Work which still needs to be done should probably include:

  • Separating the parts of the bridgedb.conf file which are only for a specific distributor into a config file specifically for that distributor (maybe this doesn't need to be done, not sure yet).
  • Changing bridgedb.Main and the commandline interface to start the email distributor and HTTPS distributor as separate processes.
  • Adding an IPC layer between them.

comment:4 Changed 2 years ago by isis

Keywords: TorCoreTeam201608 added

Adding to my august tickets.

comment:5 Changed 10 months ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

Note: See TracTickets for help on using tickets.