4 releases (2 breaking)
0.3.0-alpha | Mar 30, 2023 |
---|---|
0.2.0-alpha | Nov 25, 2022 |
0.1.1-alpha | Nov 24, 2022 |
0.1.0-alpha | Nov 24, 2022 |
#23 in #listener
21 downloads per month
40KB
361 lines
libp2p Tor
Tor based transport for libp2p. Connect through the Tor network to TCP listeners.
Build on top of Arti.
⚠️ Misuse warning ⚠️ - read carefully before using
Although the sound of "Tor" might convey a sense of security it is very easy to misuse this crate and leaking private information while using. Study libp2p carefully and try to make sure you fully understand it's current limits regarding privacy. I.e. using identify might already render this transport obsolete.
This transport explicitly doesn't provide any enhanced privacy if it's just used like a regular transport. Use with caution and at your own risk. Don't just blindly advertise Tor without fully understanding what you are dealing with.
Add to your dependencies
This won't work:
cargo add libp2p-community-tor@0.3.0-alpha
You have to choose a TLS provider and a runtime. The TLS providers are:
The runtimes are:
rustls | native-tls | |
---|---|---|
tokio | cargo add libp2p-community-tor@0.3.0-alpha -F tokio,rustls |
cargo add libp2p-community-tor@0.3.0-alpha -F tokio,native-tls |
async-std | cargo add libp2p-community-tor@0.3.0-alpha -F async-std,rustls |
cargo add libp2p-community-tor@0.3.0-alpha -F async-std,native-tls |
Example
let address = "/dns/www.torproject.org/tcp/1000".parse()?;
let mut transport = libp2p_community_tor::AsyncStdNativeTlsTorTransport::bootstrapped().await?;
// we have achieved tor connection
let _conn = transport.dial(address)?.await?;
About
This crate originates in a PR to bring Tor support too rust-libp2p. Read more about it here: libp2p/rust-libp2p#2899
License: MIT
Dependencies
~49–67MB
~1M SLoC