HelloZeroNet / ZeroNet

ZeroNet - Decentralized websites using Bitcoin crypto and BitTorrent network
https://zeronet.io
Other
18.34k stars 2.27k forks source link

Interplanetary ZeroNet proposal #2090

Closed blurHY closed 2 years ago

blurHY commented 5 years ago

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.

We can move ZeroNet onto these networks.

HelloZeroNet commented 5 years ago

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 commented 5 years ago

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: https://github.com/HelloZeroNet/ZeroNet/issues/1998

HelloZeroNet commented 5 years ago

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 commented 5 years ago

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

blurHY commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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

HelloZeroNet commented 5 years ago

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:

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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 commented 5 years ago

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. https://github.com/ipfs/go-ipfs/issues/5993#issuecomment-470338658

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

filips123 commented 5 years ago

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