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
I2P as additional transport layer for JoinMarket #1370
Comments
Having read through the related issues.... I agree of the mentioned privacy projects I2P is best alternative to Tor. In #415 Freenet and Matrix got mentions. Freenet is more for censorship-resistant sharing of files, it's filling a different role to Tor. I don't think it suits Joinmarket's use case at all. I'm a huge fan of Matrix, and run a homeserver for a small number of users. Thing is, even my small server is quite a resource hog. I suppose if it was optional, people with the resources could run a federated server for other users to connect to, but does that add much benefit over the current IRC solution? I agree Joinmarket being reliant on Tor isn't ideal. I think having I2P as an option for those who wish to use it would be a good compromise. If it's not on by default and comes with a disclaimer that it's not an endorsement either way of I2P's privacy, would that be enough to start with? I'd be willing to test IRC over I2P. |
Thanks. We do need access to some kind of library for connecting over I2P though. This looks relatively promising, though unsurprisingly, it's old: https://github.com/str4d/txi2p. The code snippets in the README match pretty well what we already do for Tor. Edit: I just want to emphasize that I'm just chipping in here with a minor comment; I don't even know how I2P works yet, yet alone writing even a line of code to use it, or running it. Hopefully we'll get real world feedback on this at some point and/or do more detailed research. |
I also haven't yet studied I2P enough in detail so far, main difference is that Tor uses onion routing, but I2P uses garlic routing. |
Here's useful article by @jonatack on Tor vs I2P and CJDNS - https://jonatack.github.io/articles/using-alternative-p2p-networks-with-bitcoin-core. |
Two more differences:
A recent answer on i2p subreddit related to denial of service by alreadyburnt:
https://www.reddit.com/r/i2p/comments/zvrqop/is_i2p_vulnerable_to_ddos_attacks/j1r8tmw |
There's an IRC network, IRC2P (with I2P installed, it's connectable through localhost/6668 ), according to: https://geti2p.net/en/faq Would adding support for that as a short-term test of the reliability of the network be an option? |
I tried testing it while ago, but something wasn't working with JM there. I2P is also supported by Ilita. But, yes, adding commented out by default I2P options for IRC in default config could be the first step here. |
Were you using Java I2P or I2PD? I'm trying to test it myself and it's taken almost 48 hours to bootstrap enough to be able to access any sites and the number of tunnels I have open is still pretty poor. I'm going to try installing Java I2P on one of my servers (in case it's lack of bandwidth at home) to see if it's more reliable there. If it always takes > 24 hours to bootstrap (and takes time to 'catch up' if you shut the node down for a while) it might not be ideal for people who want to be able to just spin up their laptop, do a quick mix, and disconnect. |
Tried with Java I2P first, later switched to I2PD, it seems better and more reliable. Got to the point JM could connect to IRC, join channels, but coinjoin attempts failed. But it was some time ago, don't remember exact details anymore. |
It looks to me there is difference in I2P vs Tor that server sees source of the connection. Doesn't change anything for takers, as you always create new identity, but for makers it means, when switching nicks, also new I2P identity needs to be created and bot should reconnect, otherwise you have worse privacy vs Tor. Likely with some smart delays or lazy closing of old connection, so that disconnects / connects cannot be correlated. Means that for IRC to just change proxy and server address will not be enough for makers, some additional logic is needed. Probably it's better to just go straight for native I2P messaging, like onionmc for Tor, instead of using IRC over I2P. |
Creating an irc server in I2P network using Ergo IRC Server could solve this?
I use both implementations javai2p and i2pd daily and never had any issue . It bootstraps fast, the only thing that I've noticed is a bit of network congestion but should improve in the coming days. |
For some time there is active DDoS attack against Tor network and sometimes it is unreliable. See https://status.torproject.org/.
In fact, Tor is currently our single point of failure. If it is not working or not reliable, it affects JoinMarket, there are no alternatives provided (ok, users could still use IRC over clearnet, by using some VPNs, but that's neither suggested nor default config, anonimity set there will be small, only few power users will try that).
It makes sense to look at other anonymity dark nets. There are some discussion about them in #415.
The second most popular one after Tor currently seems to be I2P. It was recently added to Bitcoin Core. There was argument from @chris-belcher against I2P, but it was about original Java implementation of I2P, there is now alternative, which is complete reimplementation in C++ (i2pd).
(related - #1038 and #1049).
In current circumstances I think it's worth restarting discussion about adding I2P support to JoinMarket, to have alternative for Tor. Yes, I'm also not so sure I2P privacy is at the same level as for Tor (haven't looked at that enough) and Bitcoin Core having support is weak argument also, as one thing is how you broadcast random transactions, another is how you talk about other peers and construct single collaborative transaction. But if choice is between non-working JoinMarket or JoinMarket over I2P, I definitely choose having I2P support.
As a first step we could add commented out instructions to default
joinmarket.cfg
about how to use IRC over I2P, so some people could start using that. If we agree this is good idea, we could then add I2P support to native JoinMarket messaging protocol. And then could even add--with-local-i2pd
option forinstall.sh
, like we already have with Tor.The text was updated successfully, but these errors were encountered: