libp2p / js-libp2p

The JavaScript Implementation of libp2p networking stack.
https://libp2p.github.io/js-libp2p/
Other
2.33k stars 446 forks source link

libp2p-tor/libp2p-onion Transport? #142

Closed mkg20001 closed 2 years ago

mkg20001 commented 6 years ago

Type: Feature

Severity: Low

Description: Tor transport for libp2p

Is there a Tor transport for js-libp2p?

A tor transport that can listen on hidden services as well as ephermal hidden services and dial them would be great.

paralin commented 6 years ago

https://github.com/OpenBazaar/go-onion-transport

mkg20001 commented 6 years ago

I'm asking for a JavaScript transport and not one written in Golang. (I was already aware of that transport anyways...)

paralin commented 6 years ago

Just linking to add context to the issue. But, I would say this is going to be pretty difficult if you actually want to run Tor in the browser.

daviddias commented 6 years ago

@mkg20001 this would be really cool! Is there any JS impl we can use?

RangerMauve commented 6 years ago

The onion routing could be done using the new relay feature where each hop is encrypted so that only the peer it's for knows where to go next. Of course this wouldn't have interoperability with Tor, but one could have a go node with both relay and the tor transport and use it as a sort of "exit node" that goes to the actual Tor network while using a libp2p-specific onion router before getting to it.

robertkiel commented 5 years ago

FYI: At the moment, I am creating an implementation of an incentivised privacy-preserving onion-encrypted overlay network implementation based on js-libp2p.

The project is called hopr. The plan is to present an early implementation of it at EthCC (Ethereum Community Conference) in Paris next week.

There's also a working group including Validity Labs, Status.im and Web3 Foundation whose goal is to create a reliable privacy-preserving messaging network for the Web3

achingbrain commented 2 years ago

This is great - I think there should be a link to hopr from the readme somewhere - I've created https://github.com/libp2p/js-libp2p/issues/1408 to track this.