Zeronet: Connect to trackers using Tor meek bridges

Created on 21 Apr 2018  路  16Comments  路  Source: HelloZeroNet/ZeroNet

Why?

The GFW started blocking the trackers we use as a result new users from problematic areas won't be able to connect to the network.

How?

Tor meek bridges using Amazon and Azure CDN network for connection entry point which makes it hard to restrict the access based on IP or DPI rules.

What?

We can use the meek bridges to connect to the trackers, the required modifications:

  • [x] Bundle tor client with ZeroNet distribution (currently downloaded from tor website on first startup which is not possible in some regions)
  • [x] Add pluggable transports meek-client and obfs4proxy
  • [x] Add new configuration option that controls if the tracker connection should make using tor meek bridges. (eg.: --tracker_proxy {disable,tor})
  • [x] Add new configuration option to enable use of tor meek bridges. (eg.: --tor_use_bridges)
  • [x] Refactor announcing process to allow query/store per site announce status/statistics
  • [x] At the "Connecting..." page we should display the tracker request status and add "I need to bypass internet censorship" button that enables tor bridge usage and connects to trackers using tor
  • [x] It would be also useful to add tracker status to ZeroHello and Tor bridge usage settings
enhancement

Most helpful comment

It's added in Rev3465,

To get tor meek bridges the user has to download the ZeroNet-win.zip again, as the previous versions did not have these files included: https://github.com/HelloZeroNet/ZeroNet-win/archive/dist/ZeroNet-win.zip

On the loading screen, it will display "Tracker connection error detected." message and add a "Use Tor meek bridges for tracker connections" button if more than 50% of the trackers fail.

By pressing that button it will enable Tor meek bridges and will use Tor for all tracker connection.

All 16 comments

Pros:

  • Relatively easy to implement
  • Tor has long history on how to avoid government censorship
  • We don't need to run our own servers
  • This way we can also connect to other http

Cons:

  • Requires Tor to be installed/bundled (could be problem on mobile)
  • Relies on Amazon and Azure

I'm not sure whether the trackers blocked by GFW are required by zeronet each time it starts? Or, they are only crucial for initializaion?
If only needed for initialization, is it possible for new users to use some other anti-censorship tools like lantern or psiphon to connect to trackers?

It's required on first initialization and when you wants to visit a new site. I suppose lantern or psiphon should also work the same way as tor meek bridges works

I see. Thanks a lot for your explanation.
As there are already so many Chinese users, Can they help in this? No decentralized trackers plan?

It will be interesting to unite with the telegram, maybe we'll come up with something new together.
If of course they agree.

Image alt

Trackers are already decentralized, but the GFW are able to ban them based on IP address as they did with the Tor network.

Every censorship-proof network (Tor meek, Lantern, Psiphon, Telegram, Signal) uses big, popular service providers (Amazon cloudfront, Google App Engine, etc.) that GFW could not ban, because many services shares the same IP address so it would also affects them.

So right now this is the best solution we have.

Most likely they will find solutions to how to block IP addresses sooner or later.
Forcing other companies to provide them with IP addresses. They have a lot of resources.
It is necessary to find solutions for transferring addresses through users.
We can ask the bitcoin developers to make changes to the code to transfer the addresses between users.
If we offer something significant to them, they can agree.

GLOBAL BITCOIN NODES DISTRIBUTION
https://bitnodes.earn.com/

The embedded trackers will be blocked sooner or later. That would be an endless battle by changing IPs.
I don't know if an ZeroNet node can act as a tracker as this moment. If so, I'd suggest adding an api and corresponding UI for users to add their friends' links as trackers. By archiving these, the accessibility can propagate through real world relationships.

Every peer is also acts as tracker (via PeX), but new users still need to connect somewhere. You can't just try to connect to random ips on the internet.

Yes, what I mean is not connecting to random IPs. I mean when a new user can't get initialized. He can turn to a friend in real world who's using ZeroNet, ask him to keep the ZeroNet running and ask for the IP to connect for an ad-hoc initialization.

I don't know if an ZeroNet node can act as a tracker as this moment. If so, I'd suggest adding an api and corresponding UI for users to add their friends' links as trackers. By archiving these, the accessibility can propagate through real world relationships

sounds like emule with KAD network. ED2K link Can carry host ip or DNS name and port number.

I mean when a new user can't get initialized. He can turn to a friend in real world who's using ZeroNet, ask him to keep the ZeroNet running and ask for the IP to connect for an ad-hoc initialization.

i think reseeding like i2p only works for single zite for now.

It's added in Rev3465,

To get tor meek bridges the user has to download the ZeroNet-win.zip again, as the previous versions did not have these files included: https://github.com/HelloZeroNet/ZeroNet-win/archive/dist/ZeroNet-win.zip

On the loading screen, it will display "Tracker connection error detected." message and add a "Use Tor meek bridges for tracker connections" button if more than 50% of the trackers fail.

By pressing that button it will enable Tor meek bridges and will use Tor for all tracker connection.

I have a suggestion for connection to the network .What if Magnet links assumed the role of tracker servers from which users attain initial nodes?It seems more reliable that the data necessary for initialization was downloaded , rather than from tracker servers, but through magnet links authorized and issued by the developers, so that the GFW cannot stop users from connecting other nodes.

What if Magnet links assumed the role of tracker servers from which users attain initial nodes

Actually it's already supported since Rev3537 (July 18) for example: http://127.0.0.1:43110/1anysite/?zeronet_peer=1.2.3.4:43110,2.3.4.5:4300

寤鸿鍦╥2p涓婂缓绔媡rackers锛屽啀鐢╥2p浣滀负璺虫澘杩炲叆zeronet

Was this page helpful?
0 / 5 - 0 ratings

Related issues

BenMcLean picture BenMcLean  路  3Comments

mkg20001 picture mkg20001  路  3Comments

DaniellMesquita picture DaniellMesquita  路  3Comments

jerry-wolf picture jerry-wolf  路  4Comments

yurkobb picture yurkobb  路  3Comments