Opened 6 years ago

Last modified 8 months ago

#12506 new enhancement

Separate BridgeDB databases from distributors

Reported by: isis Owned by:
Priority: Medium Milestone:
Component: Circumvention/BridgeDB Version:
Severity: Normal Keywords: bridgedb-dist, bridgedb-db, bridgedb-0.3.3, bridgedb-1.0.x, ex-sponsor-19, ex-sponsor19
Cc: sysrqb Actual Points:
Parent ID: Points: 5
Reviewer: Sponsor:


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 (11)

comment:1 Changed 6 years ago by isis

Status: newassigned

This is currently blocked on #9380 and #12505.

comment:2 Changed 6 years ago by isis

Keywords: isis2015Q1Q2 isisExB isisExC added

comment:3 Changed 5 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 4 years ago by isis

Keywords: TorCoreTeam201608 added

Adding to my august tickets.

comment:5 Changed 3 years ago by teor

Severity: Normal

Set all open tickets without a severity to "Normal"

comment:6 Changed 22 months ago by gaba

Priority: HighMedium

comment:7 Changed 22 months ago by gaba

Sponsor: Sponsor19

comment:8 Changed 22 months ago by gaba

Cc: isis removed
Keywords: isis2015Q1Q2 isisExB isisExC TorCoreTeam201608 removed
Owner: isis deleted
Points: 5

comment:9 Changed 17 months ago by gaba

Keywords: ex-sponsor-19 added

Adding the keyword to mark everything that didn't fit into the time for sponsor 19.

comment:10 Changed 17 months ago by gaba

Keywords: ex-sponsor19 added
Sponsor: Sponsor19

Remove sponsor 19 and add a keyword ex-sponsor19 to mark all the tickets that could have been in the scope of the sponsor.

comment:11 Changed 8 months ago by teor

Status: assignednew

Change tickets that are assigned to nobody to "new".

Note: See TracTickets for help on using tickets.