Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Various hidden services and tunnel related improvements #1510

Merged
merged 12 commits into from
Jul 6, 2015

Conversation

rjruigrok
Copy link
Contributor

  • Notify the ctrl+n debug panel about a bunch of hidden service related activities.
  • Fix for the connectability problem that occured on the key-response message relayed to the downloader. Downloading over hidden services now also works on non-connectable internet connections!
  • Fixed bug where monitor_downloads repeatedly created introduction points while the previous one was not ready yet.
  • Tunnel main.py was breaking circuits after 60 seconds, now it doesn't.
  • Removed stale anon_test.torrent file
  • The dht-lookup for finding introduction points takes place over a circuit now, to prevent eavesdropping of info_hash lookups. This is implemented as a new message type in the community.
  • Rendezvous recreation removed, as it was incorrect / not necessary (I was confused by the original Tor design where the RP is located at the downloader side, in Tribler it's on the seeders' side).
  • Peers tab in download overview of the gui shows the circuit-id instead of an encoded ip-address that represents the circuit.
  • GUI: 'bittorrent swarm' image changed to a Darknet cloud near the bittorrent swarm cloud
  • One test of hidden servcies uses 3 hops for downloading now
  • Changed the community identifier of the tunnelcommunity.
  • Basic peer exchange by appending peers in the key-response from a seeder

Ready if it passes
.. and if @egbertbouman and @NielsZeilemaker agree 😄

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4701/
Test PASSed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/403/
Test FAILed.

@synctext
Copy link
Member

tetest this please

@synctext
Copy link
Member

retest this please

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4702/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4703/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/404/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/405/
Test FAILed.

relay_circuit = self.intro_point_for[message.payload.info_hash]
relay_circuit.tunnel_data(message.candidate.sock_addr, TUNNEL_PREFIX + message.packet)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure if this is a correct change. My understanding was that message.candidate.sock_addr was the ip/port of the exit-socket of the previous tunnel.
Hence, if we backpropagate it to that ip/port, it would automatically be forwarded back to the originator.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also thought that. But when the key-response reached the intro-point (which should relay the response to the downloader over the originating circuit), it did not use the originating circuit but it sends directly to the downloader.

Even more: it meant that the sock_addr of the downloader was known by the seeder? Than the whole hidden services would not make sense.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm pretty sure this is not true

@NielsZeilemaker
Copy link
Contributor

@rjruigrok have a look at my comments, I'm not sure if the change you made makes sense.
I do like the dht-request stuffs though

@rjruigrok
Copy link
Contributor Author

@NielsZeilemaker Although I'm stubornly defending things 😃 thanks for the comments!
Most comments are related to the connectability problem between downloader and introduction point that currently causes the whole hidden services thing to not work. What would have been your solution to solve this downloader-connectability problem?

@synctext
Copy link
Member

@rjruigrok Can you elaborate a bit more on the key problem?
What is the problem with connectability and the key_request, key_response message?

@synctext
Copy link
Member

Yeah! it downloads for me now, exclusively from hidden seeders.
tribler_6 5pre_hidden_seeding_works_finally__29june2015

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4705/
Test PASSed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/407/
Test FAILed.

@rjruigrok
Copy link
Contributor Author

@synctext to elaborate:

  • a downloader retrieves the introduction point from DHT (works fine)
  • it used one of the existing circuits to send a key-request to the introduction point as final destination. (works fine) Because it is a circuit that does not end in the introduction point, there is no path between downloader and introduction point.
  • the introduction point relays the key-request to the seeder over the introduction-circuit.
  • the seeder responds with keys over the introduction circuit, with the downloader as final destination. (thus the downloaders' identity is known to the seeder?)
  • the introduction point does not have a circuit to the downloader, but knows its sock addr, so it directly exits data to this address without using a circuit for this. But the introduction point may not be able to contact the downloader if it is not punctured yet or if the downloader is not connectable at all.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4706/
Test FAILed.

@synctext
Copy link
Member

retest this please

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/408/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4707/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/409/
Test FAILed.

@synctext
Copy link
Member

retest this please

@synctext
Copy link
Member

4 failures with errors including TestHiddenCommunity.test_hidden_services_with_exit_nodes - Hidden services download should be finished in 30s - Condition was not satisfied in 30 seconds

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4708/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/517/
Test PASSed.

@whirm
Copy link
Contributor

whirm commented Jul 3, 2015

retest this please

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4816/
Test PASSed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/518/
Test FAILed.

@whirm
Copy link
Contributor

whirm commented Jul 3, 2015

@rjruigrok looking good!

@whirm
Copy link
Contributor

whirm commented Jul 3, 2015

There's been a timeout, but it's on the gui tests and it seems it's not a blocked thread anyway.

@rjruigrok
Copy link
Contributor Author

Added peer exchange via the key-response message. Just to get more other peers if one peer is found.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4817/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/519/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4818/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/520/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4819/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/521/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4820/
Test PASSed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/522/
Test FAILed.

@rjruigrok
Copy link
Contributor Author

retest this please

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4821/
Test PASSed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/523/
Test FAILed.

@rjruigrok
Copy link
Contributor Author

I'm not planning any more work in this PR, so it can be considered ready now. 😃

@rjruigrok
Copy link
Contributor Author

retest this please

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester_devel/4822/
Test FAILed.

@tribler-ci
Copy link
Contributor

Refer to this link for build results (access rights to CI server needed):
http:https://jenkins.tribler.org//job/GH_Tribler_pull-request-tester-turbo-isolated_devel/524/
Test PASSed.

@synctext
Copy link
Member

synctext commented Jul 5, 2015

OK, if this is merged we'll be building V6.5 RC1!

whirm added a commit that referenced this pull request Jul 6, 2015
Various hidden services and tunnel related improvements
@whirm whirm merged commit dc9189b into Tribler:devel Jul 6, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants