TokTok / c-toxcore

The future of online communications.
https://tox.chat
GNU General Public License v3.0
2.24k stars 283 forks source link

[Feature request] Add support to i2p so that Tox clients can run hidden within it like RetroShare #1621

Open Nokia808 opened 4 years ago

Nokia808 commented 4 years ago

Hi. Please look for this discussions:

1) with i2pd project: https://github.com/PurpleI2P/i2pd/issues/1521 2) with i2pd project also: https://github.com/PurpleI2P/i2pd/issues/1522 3) with qTox project: https://github.com/qTox/qTox/issues/6150

Is is possible to do some thing from your side (Tox protocol project), like creating I2P nodes available 24/7 and add them to bootstrap, so that Tox client can make themselves run completely hidden within i2p network as currently RetroShare able to do so - see: https://retroshare.readthedocs.io/en/latest/tutorial/i2p-hidden-rs-node/

Please, feel free to close this request if it is technically relevant.

Thank you.

aaannndddyyy commented 3 years ago

Just creating tox bootstrap nodes in i2p will not suffice. The problem is, there are no IP's to work with, and toxcore and hence the tox DHT do not support hidden service addresses, like b32 or .onion, but this would be needed. That said, I thik it would be a very nie feature, to have the possiblity to run your own tox instance purely as a hidden service in i2p and/or tor

emdee-is commented 7 months ago

The problem is, there are no IP's to work with, and toxcore and hence the tox DHT do not support hidden service addresses, like b32 or .onion, but this would be needed.

This may not be true of i2p, and is not true of Tor; see https://git.plastiras.org/emdee/tox_profile/wiki/AddingAnOnionService

@iphydf Do you want to open a "Tox in Tor" issue so that we can track subtasks and blockers. I think if we solve that, it may be that we can modify that to solve this.

emdee-is commented 7 months ago

Just creating tox bootstrap nodes in i2p will not suffice. The problem is, there are no IP's to work with, and toxcore and hence the tox DHT do not support hidden service addresses, like b32 or .onion, but this would be needed.

"The problem is, there are no IP's to work with" is not true in Tor, and may not be true in i2p: https://git.plastiras.org/emdee/tox_profile/wiki/AddingAnOnionService

If we solve "Tox in Tor" we may be able to morph the solution to "Tox in i2p".

@iphydf Do you want to open a "Tox in Tor" issue so we can track subtasks and blockers? For example https://github.com/TokTok/c-toxcore/issues/2467 may be a blocker for testing "Tox in i2p" and "Tox in Tor"

Green-Sky commented 7 months ago

For i2p to make sense we need an ip replacement. As part of the longer library evolution and modularization plan, this will become possible. But for now there is now easy way to do this. Same with proper websocket/webrtc support.

emdee-is commented 7 months ago

For i2p to make sense we need an ip replacement.

I don't know what you mean by "ip replacement"

i2p runs a socks proxy to go into it on 4444, which would be like a Tor SOCKS proxy on 9050, so there's no IP replacement needed that I know of.

I just don't know the procedure for getting an IP address for a service running in i2p the way you can with Tor but I expect it;s doable.

Green-Sky commented 7 months ago

i2p is designed to have NO exit nodes, and special ids are used to identify other i2p nodes. -> "ip replacement" and its not just a socks proxy. One would have to explicitly setup exitnodes to connect to the clearnet, something that's equally dangerous to running a tor exitnode.

emdee-is commented 7 months ago

The "exit node" would be the BSnode that you're running on the same machine anyway, that you've wired up into i2p or tor. So "running an exit node" is no more dangerous than running a BSnode. And tor or i2p just provide an alternate pathway to connect to the Bsnodes without being on the clearnet.

We need to get a few BSnodes running a hidden service to get a testbed it's easy to do https://github.com/TokTok/c-toxcore/issues/2331#issuecomment-1922794392. Plus solving the blockers to testing TCP https://github.com/TokTok/c-toxcore/issues/2584#issuecomment-1925924797

emdee-is commented 7 months ago

@Green-Sky can you telnet to https://nodes.tox.chat/test port 33445 over clearnet?

Can it be used as a test to see if a BSnode is visible? https://github.com/TokTok/c-toxcore/issues/1338#issuecomment-522859928

I tried but it doesn't work for me.

@nurupo is that something I can use for live testing of BSnodes? I can simply do a POST to https://nodes.tox.chat/test as a test of a node?

I can use nmap but it requires root privs.

fcore117 commented 6 months ago

First priority still is that Tox must replace Skype as solid simple p2p communicator. Hiding is more niche thing for some, but direct connections is still nr1 to get latency free and fast communication.