[tor-bugs] #28942 [Circumvention/Snowflake]: Evaluate pion WebRTC

Tor Bug Tracker & Wiki blackhole at torproject.org
Thu Aug 29 15:23:31 UTC 2019


#28942: Evaluate pion WebRTC
--------------------------------------------+------------------------------
 Reporter:  backkem                         |          Owner:  cohosh
     Type:  enhancement                     |         Status:  accepted
 Priority:  Medium                          |      Milestone:
Component:  Circumvention/Snowflake         |        Version:
 Severity:  Normal                          |     Resolution:
 Keywords:  anti-censorship-roadmap-august  |  Actual Points:
Parent ID:                                  |         Points:  5
 Reviewer:                                  |        Sponsor:
                                            |  Sponsor28-must
--------------------------------------------+------------------------------

Comment (by dcf):

 Replying to [comment:40 dcf]:
 > I'm going to try brute-force packaging all the dependency projects.

 Using the [[attachment:gomodtorbm|attached script]], I generated projects
 for pion-webrtc and all its dependencies. The result is in a branch.
  * [https://gitweb.torproject.org/user/dcf/tor-browser-build.git/log/?h
 =pion-webrtc&id=0f31d1bcfd71bba9ef27fab3b5a6d3231c60213d pion-webrtc]

 The script doesn't do everything by itself. Its raw output, basically a
 transcription of `go mod graph`, is
 [https://gitweb.torproject.org/user/dcf/tor-browser-build.git/commit/?h
 =pion-webrtc&id=bc6782739b8e69b5075d8942583c75f718733327 here]. I added
 fixup commits [https://gitweb.torproject.org/user/dcf/tor-browser-
 build.git/commit/?h=pion-
 webrtc&id=8502c41aa2b1342282d78ef23652b8b034aeed8f here] (adding missing
 dependencies, enumerating multiple modules within one repo, removing
 duplicates) and [https://gitweb.torproject.org/user/dcf/tor-browser-
 build.git/commit/?h=pion-
 webrtc&id=080494d79f024371c444bb7fb641df4ce4bc41ef here] (expanding
 version numbers into hashes).

 I discovered by accident that one of the dependencies, golang.org/x/sync,
 was not actually necessary, so I removed it. It's possible that there are
 more than can be removed. I'm not sure if this is a maintainer neglecting
 to run `go mod tidy` to remove an unused dependency, or what.

 Overall, my impression so far is that this is not the way we want to
 continue doing things. The problem I foresee is maintenance across
 upgrades: the pion-webrtc module upgrades ones of its dependencies, which
 causes a cascade of updated version requirements down the dependency tree.
 boklm's suggestion from comment:42 would prevent a proliferation of rbm
 projects, but we'll still want something to semi-automatically handle
 upgrades for us. We could of course use `go` itself--but that's a
 discussion for #28325.

 ----

 I did a `make testbuild` using the pion-webrtc branch at
 0f31d1bcfd71bba9ef27fab3b5a6d3231c60213d and put the outputs, including
 checksums, here:
   https://people.torproject.org/~dcf/pt-bundle/tor-browser-pion-
 webrtc-20190829-0f31d1bcfd/

 Everything builds, and from the command line I can run `snowflake-client
 -h` and see that it produces output, but unfortunately it doesn't
 bootstrap for me. But then again, neither does
 [https://github.com/cohosh/snowflake/commit/3cc240625cad22db02eca7af41b139606c13147d
 3cc240625c] from cohosh's pion branch from comment:28. So whatever is
 going wrong for me, is possibly not related to the rbm build.

 This is what I see in the snowflake-client log. After this, there's no
 more output for at least several minutes (that's as long as I waited).
 {{{
 2019/08/29 01:43:47 Rendezvous using Broker at: https://snowflake-
 broker.bamsoftware.com/
 2019/08/29 01:43:47 WebRTC: Collecting a new Snowflake. Currently at [0/3]
 2019/08/29 01:43:47 snowflake-UQ9COqlX3fZ5JMmA  connecting...
 2019/08/29 01:43:47 Started SOCKS listener.
 2019/08/29 01:43:47 SOCKS listening...
 2019/08/29 01:43:47 WebRTC: PeerConnection created.
 2019/08/29 01:43:47 WebRTC: DataChannel created.
 2019/08/29 01:43:47 WebRTC: Created offer
 2019/08/29 01:43:47 WebRTC: Set local description
 2019/08/29 01:43:48 SOCKS accepted:  {[scrubbed]   map[]}
 }}}

--
Ticket URL: <https://trac.torproject.org/projects/tor/ticket/28942#comment:43>
Tor Bug Tracker & Wiki <https://trac.torproject.org/>
The Tor Project: anonymity online


More information about the tor-bugs mailing list