getlantern / browsersunbounded

Interoperable browser-based P2P proxies for censorship circumvention
GNU General Public License v3.0
14 stars 0 forks source link

bump quic-go to 0.41 #239

Closed noahlevenson closed 8 months ago

noahlevenson commented 8 months ago

This PR bumps Broflake to use the newest quic-go. Since the new quic-go requires Go 1.21, this PR should not be merged until https://github.com/getlantern/flashlight/pull/1351 has been applied to flashlight to bump it from Go 1.20 to Go 1.21:

It seems that no code changes were required to perform the upgrade here. The new quic-go "just works," as least as far as Broflake is concerned.

Some informal things I did to check Broflake's system functions after bumping to 0.41:

I stood up a test network consisting of a local Freddie, a local standalone egress server, a single widget, and a single desktop client. I allowed the widget and desktop client to discover each other and complete signaling, and I observed the "QUIC connection established, ready to proxy!" message emitted by the desktop client.

I disconnected and reconnected the widget a few times, and I observed the desktop client re-discover it, recover from its broken QUIC connection, and successfully dial a new one.

I disconnected the desktop client a few times and repeated the above.

I hosted a development build of the web widget using a freshly compiled wasm engine. I allowed the web widget to discover my local native binary desktop client and establish a connection. I disconnected and reconnected both clients a few times, observing correct recovery and re-connection.

I used Firefox to proxy through the web widget. I visited a bunch of sites, Youtube, Spotify, etc.

All seems good.

We've only had one historical issue with quic-go updates, and that issue presented as a race condition which sometimes left the desktop client unable to dial and maintain a QUIC connection. That was caused by a breaking API change. Nothing like that seems to have happened with this new update.

noahlevenson commented 8 months ago

Thanks @hwh33!

BTW, I just realized I did a boneheaded thing -- in my writeup above, I circularly linked to this very PR instead of linking to the Flashlight PR that I meant to link to.

I just edited the comment to fix it.

I also neglected to tag @hwh33 in as a reviewer on https://github.com/getlantern/flashlight/pull/1351, which I just fixed.

TBH, I don't really know who's a stakeholder for visibility on this stuff, so LMK if I'm doing it wrong.