I’ve finally installed the I2P (java) software, and even though I’m not actively using I2P yet, I’m very happy to contribute bandwidth to the network.
I’d like to understand more the difference between I2P and I2Pd. Is it just different software for the same purpose? So it seems from the FAQ here: “I2Pd is a C++ implementation of the I2P protocol. When using I2Pd you will need to edit configuration files, with Java I2P you can do it all within a user interface.”
I’d be happy to hear about user experiences on both. Was I2Pd much more difficult to set up? Is it more than just a software difference? Has anyone noticed better stability or other differences with either one?
Thanks for everone’s help! 🙏


Not an expert but I think originally I2Pd came about due to performance reasons as well as for people that don’t want to run Java. The idea being that it would run faster and more memory efficiently vs the Java app. Nowadays I’m not so sure there’s a huge difference but I can’t say that I’ve done any intensive testing on both.
There is a minor difference between the two if you plan to use bittorrent over I2P and want to use the I2PSnark torrent client. The I2P java app is the the only one that supports bittorrent DHT over I2P with the I2PSnark torrent client. From https://i2p.net/en/docs/applications/bittorrent/#general-guidance-for-developers
In practice that’s not a huge deal, people who wish to torrent usually add open I2P trackers onto torrents to work around the lack of DHT but it would be nice if DHT support were more universal within the I2P ecosystem.
Very informative for me, also the torrenting difference. Thank you so much! 🙏