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

Interplanetary ZeroNet proposal #2090

Closed
blurHY opened this issue Jul 11, 2019 · 15 comments
Closed

Interplanetary ZeroNet proposal #2090

blurHY opened this issue Jul 11, 2019 · 15 comments

Comments

@blurHY
Copy link
Contributor

blurHY commented Jul 11, 2019

https://github.com/blurHY/IPZN

Related:

As he said, we should focus on app layer, for the DHT feature will never be done.
We should aim to make it modular and support more protocols.

The present situation is serious, ZeroNet is completely unusable in China.

  • IPFS works by just adding bootstrap nodes.
  • Dat seems not working.
  • Tox works

We can move ZeroNet onto these networks.

@HelloZeroNet
Copy link
Owner

HelloZeroNet commented Jul 11, 2019

Does Zeronet not works in China because the trackers are blocked or because you can't connect to any Zeronet client? If you can't connect to any zeronet client, then DHT won't help.

It would be great if someone, who has access to machines inside gfw could do some comparison on the protocols, so maybe we could find a way to make it work again in China.

@tangdou1
Copy link
Contributor

tangdou1 commented Jul 11, 2019

Does Zeronet not works in China because the trackers are blocked or because you can't connect to any Zeronet client? If you can't connect to any zeronet client, then DHT won't help.

Zeronet does not works in China because the trackers are blocked. It is difficult to download new zite without trackers supports.
How about considering add the following feature:
#1998

@HelloZeroNet
Copy link
Owner

HelloZeroNet commented Jul 11, 2019

#1998 would not be hard to do, but according to my test (I picked a random ip:port from /Stats and entered it to http://port.ping.pe) all zeronet connections are blocked in China, not just tracker connections.
Can you confirm that the clients are able to connect to other zeronet ips outside of china?

@wandrien
Copy link
Contributor

Theoretically, it's possible to tunnel the traffic over Tox.

@blurHY
Copy link
Contributor Author

blurHY commented Jul 11, 2019

I tried IPFS recently, it works, though I had to add the bootstrap peers manually.
If IPFS doesn't work one day, we can simply move to another protocol

Theoretically, it's possible to tunnel the traffic over Tox.

Tox always works here

Can you confirm that the clients are able to connect to other zeronet ips outside of china?

Possibly GFW can detect ZeroNet's protocol, but It only blocks the malicious traffic on special days.
I have used my VPS for about a half year. GFW would just limit the maximum of transmitted data per day, and the next day, my VPS become available again

@HelloZeroNet
Copy link
Owner

You can't just move to other protocol, as these protocols are not compatible with each other. You won't be able move zeronet pages to ipfs as it works differently.

@blurHY
Copy link
Contributor Author

blurHY commented Jul 11, 2019

You can't just move to other protocol, as these protocols are not compatible with each other. You won't be able move zeronet pages to ipfs as it works differently.

I will build a compatibility layer which has ZeroNet's APIs

@HelloZeroNet
Copy link
Owner

HelloZeroNet commented Jul 11, 2019

I think eg. multi-user sites won't be possible with ipfs, but I can be wrong.
If the blocking is protocol based, then it would make more sense to modify the current protocol to make it harder to block.

If the blocking is not protocol based, but they monitoring the participants ip:port values, then moving to other protocol will make no difference as it does not depends on the network communication.

@blurHY
Copy link
Contributor Author

blurHY commented Jul 11, 2019

I think eg. multi-user sites won't be possible with ipfs, but I can be wrong.

Yeah, it's not possible without modifying IPFS's code and directly controlling libp2p.

I think we should make ZeroNet modular, to make a network stack, to make use of existing stuff.

If the blocking is protocol based, then it would make more sense to modify the current protocol to make it harder to block.

If the blocking is not protocol based, but they monitoring the participants ip:port values, then moving to other protocol will make no difference as it does not depends on the network communication.

The problem is that you might be alone, which means that you don't have enough time and effort.
We suggest to use IPFS is not only because it is resistant, but it also has a lot of other features, e.g. block-level deduplication

There're so many issues still open here. We wrote about the most needed things of ZeroNet.
We should focus on the top of the network stack, application layer.

For the GFW, they won't block an ip for a long time, and there's legal application of p2p tech, e.g. windows update acceleration, so it's based on protocol characteristic

As I mentioned in IPZN's README, we should keep current implementation and make a hybrid version, just like webtorrent.
The more protocols, the more possibilities

@blurHY blurHY closed this as completed Jul 11, 2019
@blurHY blurHY reopened this Jul 11, 2019
@HelloZeroNet
Copy link
Owner

For the GFW, they won't block an ip for a long time, and there's legal application of p2p tech, e.g. windows update acceleration, so it's based on protocol characteristic

That's not a proof. It could be possible that they running a ZeroNet tracker/client and blocking every client that connects to them. Or just monitoring who tries to connect to the default tracker addresses.
It would worth try to:

  • Disable tracker sharing feature
  • Remove default trackers
  • Setup a private tracker
  • Setup a new, non-public site

And see if the client got blocked. If it does, then probably it's protocol based filter if not, then it's something different.

@blurHY
Copy link
Contributor Author

blurHY commented Jul 11, 2019

Blocking a tracker is much easier for GFW.

If we have a popular tracker, it must be already been blocked.
For a tracker with a few users, it won't be blocked. But It has just a few users.

IPFS's devs also said that GFW may set up a node and get nodes from the DHT and block them.
However if there are enough nodes and GFW can only get a small part of the whole network, it's ok.

@wandrien
Copy link
Contributor

wandrien commented Jul 11, 2019

A great advantage of the current Zeronet implementation and architecture is that it's plain and simple, so it can be relatively easily reimplemented in any language, on top of any OS-level API. This potentially makes ZeroNet as much immortal as HTTP protocol itself. There are lots of compatible HTTP server implementations, in the same way I hope there will be lots of ZeroNet ones.

I guess, it's not likely that ZeroNet can run directly on top of IPFS, as their data operating models aren't compatible. At the same time, IPFS can be used as a transport layer, as well as Tox, I2P etc.

Probably, the code needs some refactoring for make creating transport layer implementations easier. Unfortunately, no one has engaged in this yet.

@HelloZeroNet
Copy link
Owner

However if there are enough nodes and GFW can only get a small part of the whole network, it's ok.

If that's the goal, then using bittorrent dht (10M+ peers) would be the best option.

But looks like it does not protects from collecting ips: https://torrentfreak.com/btindex-exposes-ip-addresses-of-bittorrent-users-140807/

@blurHY
Copy link
Contributor Author

blurHY commented Jul 12, 2019

If that's the goal, then using bittorrent dht (10M+ peers) would be the best option.

We have tor/i2p.
Tor is a huge network, but the meek bridge doesn't work. I2p is ok

But looks like it does not protects from collecting ips: https://torrentfreak.com/btindex-exposes-ip-addresses-of-bittorrent-users-140807/
Yeah, that's a common problem.
ipfs/kubo#5993 (comment)

Anonymity networks may make it a bit better, but i2p(usable here) is also a p2p network, which can be blocked.

@filips123
Copy link
Contributor

@blurHY Can you develop IPZN as normal ZeroNet plugin instead? See also #2062.

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

No branches or pull requests

5 participants