AFAIK (I’m not familiar with the totality of the Tribler code) right now what happens is:
The torrent metadata is still fetched from the DHT (If it hasn’t already been obtained by Tribler in some other way) this operation is done in plain text like any other bittorrent client.
Then, if the download is set to be downloaded through the anontunnel community, it will switch to a libtorrent session that uses a SOCKS proxy that will forward all traffic to the tunnel community.
The tunnel community builds encrypted circuits of N hops (depending on the download settings) and uses those to download/seed. These circuits can be fully encrypted (from Tribler to Tribler passing through N hops) or partially encrypted (from Tribler to exit node to standard torrent clients passing through N hops) and Tribler will build any kind it can depending on what gets discovered.
The tunnel community peers can either act as intermediate hops or as exit nodes. Exit nodes will forward bittorrent traffic back to the internet and those are obviously exposed. The intermediate hops will just receive encrypted traffic and forward it to the next hop (they can’t see the contents of the traffic they are forwarding).
When a download finishes, if safe seeding is enabled, it will only seed through the tunnel community.
All Tribler instances will act as intermediate hops but not as exit nodes by default. If you want to act as an exit node, you have to go to the settings panel and enable that feature. But that’s obviously dangerous as you can’t control what kind of stuff people will be downloading through you.
It use to be that an opt-in window would show up asking if the user wanted to enable the exit node feature with a big fat warning and the cancel
button focused by default. But people would just click on accept
without reading the message and get in trouble. So now it’s “hidden” on the settings panel :).
Right now the tunnel community is very small (and experimental) so there aren’t many exit nodes available. The university is providing some to help bootstrap the network, but that’s mostly it. Anybody can create more of these helpers but right now there’s no incentive for doing so. There’s some work being done towards some sort of credit/reputation system where you can provide bandwidth to other peers when you don’t need it, so you can spend this credits/reputation when needed to get “first on the line” of other peers, but that will take some time to be usable.
I hope this wall of text answers your questions
Cheers!