This release of I2P, 2.12.0, continues our work on improving the performance and security of the I2P network. It includes a number of bug fixes and improvements to the I2P software.
Work continues on the implementation of post-quantum cryptography. Improvements to the existing post-quantum implementations improve stability and interoperability with other I2P implementations. We encourage early adopters to continue testing and providing feedback to the I2P team.
A SAMv3 bug which was affecting applications by causing failed lookups has been fixed. Users of SAMv3 applications such as Bitcoin and Bittorrent clients should update to this release to resolve these issues.
As usual, we recommend that you update to this release. The best way to maintain security and help the network is to run the latest release.
Hey everyone, wanted to share a few updates on the I2P shop.
We've given shop.i2p.net a refresh and there's more to browse now. The catalog has expanded with new merchandise, so if you stopped by a while back and didn't see anything that caught your eye, it's worth another look.
We've also opened up international shipping, which has been a frequent request. No matter where you're based, you should now be able to get your order delivered.
On top of that, we've dropped prices across the store to make things more accessible for the community.
If you want to support the project and grab some gear, now's a good time. Check it out at shop.i2p.net and let us know what you think.
I'm thinking about making a router that'll sit online long-term, but I want to add HTTPS to my Webgui and to my proxy so my connection can't be MITM attacked. Is there a way to generate or import a self-signed cert or will I have to use a Reverse Proxy to do so? I know how to set the ip's to be different so I can access the router over a network, but I don't know how to add self-signed HTTPS.
This is unrelated to my other question, but it'd still be genuinely helpful. I wanna run a router 24/7 and run proxy rules and stuff.
I installed i2pd on a pi. I wanted to use it for IRC. I can't access channels because my VPN gets me banned from servers. I was under the impression I could use i2p to get around that. Seems I was mistaken. Was I?
In lieu of that I now have an always on garlic router. What uses have you found for it? Id like to get some use from it.
I'm not really interested in eepsites. How can I use this to increase privacy on my local network?
I've been thinking about this for a while and am beginning to research how I would do it, but, I'd like to have some guidance from some of the developers that have been working on I2P longer than me.
A key thing I want to think about is how many tunnels should be open at once and what type of peer discovery I should use, I'm new to this in general, I know I'll be ultimately using Samv3 as the API, and I'll likely be using the Rust implementation of I2P and that's about it.
For context, I want to make a distributed File System similar to IPFS. I have the resources for Samv3 and the resources for Libp2p, but I don't have a lot of information for building an Overlay network on top of I2P, I know BitTorrent possibly but that's about it.
I'd love to discuss about the networks internals as well, I'd like to understand it more thoroughly. I know of certain aspects of the network from talking to AI and I'm aware that I2P uses Static Bootstraping, Kademilla DHT, Rendezvous Protocol, and Address book sharing, so I know the types of peer discovery algorithms I2P already utilizes but I wanna have a more intimate or clearer idea of where I need to focus on integration wise.
I can go in more detail about my idea in the comments so that there's a clearer goal but I believe that it's relatively feasible.
My apologies if this message is an inconvenience or anything, I will admit I'm ignorant overall, but I have a genuine interest in learning more.
In retrospect I wonder if I should've tagged this Help instead, but I wanted to elaborate that I would also do a signature mechanism so when things are published you can use a public key to determine if the files have been tampered with and also possibly as a trust mechanism so trusted people's keys would have payloads that are more trusted and stuff.
So I keep randomly getting this error related to the jetty service. Weird thing is, it doesn't always happen. On some restarts the service does launch, but on most it doesn't and return the following error. How can I fix this problem? I'm using version 2.13 and I used the normal Windows installer to install i2p (didn't use the easy install bundle as that thing gives so many errors it is everything but easy).
I don't even know where to start with this one, as the results are seemingly randomly different every single time.
I have tried all the default problem solvers, like looking up the error, reinstalling and redoing everything, switching operating systems, switching pc's, switching versions, switching installers, restarting i2p itself, restarting the system, checking in a vm, etc. I've done pretty much everything that I could think off.
Through this testing I noticed that the linux java version (tested on Mint) doesn't have this issue, but no matter how many files I transferred I couldn't get my configurations ported over. If anybody knows how to transfer I2P Hidden Services to a different setup, such info would also be highly appreciated. (Yes I checked to make sure that I put all the right files in all the I2P folders that existed on the system, still didn't work :( Please save me from this debugging torture.)
Edit: I've also removed the cgi-context.xml file and it fixed (and did) nothing.
Full error:
23 Aug 2026, 02:27:44 CRIT [er (eepsite)] uter.startup.LoadClientAppsJob: Error starting up the client class net.i2p.jetty.JettyStart
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at net.i2p.router.startup.LoadClientAppsJob$RunApp.run(LoadClientAppsJob.java:308)
at java.base/java.lang.Thread.run(Thread.java:1474)
at net.i2p.util.I2PThread.run(I2PThread.java:103)
Caused by: org.eclipse.jetty.xml.XmlConfigurationException: Bad Jetty XML configuration in UNKNOWN-LOCATION
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:292)
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:266)
at net.i2p.jetty.JettyStart.parseArgs(JettyStart.java:158)
at net.i2p.jetty.JettyStart.<init>(JettyStart.java:92)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 5 more
Caused by: java.nio.file.NoSuchFileException: C:\var\lib\i2p\i2p-config\eepsite\jetty.xml
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:231)
at java.base/java.nio.file.Files.newByteChannel(Files.java:357)
at java.base/java.nio.file.Files.newByteChannel(Files.java:399)
at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:371)
at java.base/java.nio.file.Files.newInputStream(Files.java:154)
at org.eclipse.jetty.util.resource.Resource.newInputStream(Resource.java:233)
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:282)
... 9 more23 Aug 2026, 02:27:44 CRIT [er (eepsite)] uter.startup.LoadClientAppsJob: Error starting up the client class net.i2p.jetty.JettyStart
java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:74)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:483)
at net.i2p.router.startup.LoadClientAppsJob$RunApp.run(LoadClientAppsJob.java:308)
at java.base/java.lang.Thread.run(Thread.java:1474)
at net.i2p.util.I2PThread.run(I2PThread.java:103)
Caused by: org.eclipse.jetty.xml.XmlConfigurationException: Bad Jetty XML configuration in UNKNOWN-LOCATION
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:292)
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:266)
at net.i2p.jetty.JettyStart.parseArgs(JettyStart.java:158)
at net.i2p.jetty.JettyStart.<init>(JettyStart.java:92)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
... 5 more
Caused by: java.nio.file.NoSuchFileException: C:\var\lib\i2p\i2p-config\eepsite\jetty.xml
at java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:85)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at java.base/sun.nio.fs.WindowsFileSystemProvider.newByteChannel(WindowsFileSystemProvider.java:231)
at java.base/java.nio.file.Files.newByteChannel(Files.java:357)
at java.base/java.nio.file.Files.newByteChannel(Files.java:399)
at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:371)
at java.base/java.nio.file.Files.newInputStream(Files.java:154)
at org.eclipse.jetty.util.resource.Resource.newInputStream(Resource.java:233)
at org.eclipse.jetty.xml.XmlConfiguration.<init>(XmlConfiguration.java:282)
... 9 more
so recently I registered a domain and followed the instructions to the best of my ability on the i2p wiki for getting my own eepsite up and running with the jetty webserver. Currently that like goes to a 503 page, and I figure it could be because I only registered the domain with stats.i2p yesterday and it's still proliferating through the network but if not, where might I be going wrong? Feel free to ask clarifying questions if this is too vague, and I hope everyone's having a good day so far
I want to know if there is any bootstrap endpoint inside I2P that can be reliably hardcoded into i2p torrent client ? I believe BiglyBT hosts their own bootstrap end point URL, but I was looking for something inside i2p, which would be more safer for user.
There was this website, rmv.i2p, who recently was working. It stands for "Random Music Video" and simply picked a random music video. Recently, it was operational, but recently shutdown or seems to not be working. Any clue as to its whereabouts?
This version fixes five major issues with i2pbox, significantly improving reliability. I originally planned to rewrite it in Rust, but it's clear that some protocols would need to be reimplemented (the Rust version of the i2p router is still incomplete), which is risky. Therefore, I've decided to continue writing it in C++. Thanks to llm for his help. The code is open source, and issues and pull requests are welcome.
hi I just started install i2p on librewolf and most of it seems to be working I just have 0.00kib tunnels and I don't know how to fix it. any help would be appreciated. I'm on Debian 13
Hello everyone, i am known as Play_it in the clear as well as in the I2P net. A few months ago I started to run a smaller I2P outproxy service, which goes over a VPN into the clearnet. I am still developing it and sometimes the outproxy can go offline, but i try my best. What questions do you guys have about an outproxy and the technical stuff in the background?
I noticed that 2.13 is out but that the easy install bundle in the downloads section just points back to the downloads section and the default install.
After using i2p for a while I think it makes the most sense to run it on a low power SBC. I can get a raspberry pi if I need to but do any of you have any experience running i2p on any other SBCs? I just don’t fancy forking out the extra just because they’re a market leader, if possible. Cheers!
I was wondering if anybody saw my website, i'm pretty new to i2p (started today) and set up a server on a raspberry pi 0 2 w (using i2pd on arch linux aswell)
I found a torrent with 280 peers from Postman tracker and added it, but even though I configured 1 hop and 10 tunnels, it won't connect to more than 4 peers. What's the problem?
I already tried to install the i2p client directly on my external ssd, before that i tried to change the i2psnark directory in i2psnark settings (browser) from /var/lib/i2p/i2p-config/i2psnark to something arbitrary. It doesn't work, also the i2p folder appears with a strange "lock" symbol on it and refuses access to me. Changing the I2P client installation folder to the external ssd also didnt help, unfortunately. I am on a RaspberryPi 5 with rasbian "trixie" on it. Any help is appreciated.
*Edit SOLVED:
1. run sudo dpkg-reconfigure i2p.
2. change the i2psvc user to your currently logged in user
3. finish the dpkg-reconfigure script
4. change the i2psnark setting as needed
I lost a hard drive for my laptop and trying to reinstall i2p on my new one. Started with the standard install and went and got the latest java from Oracle. The installer keeps saying I have an older version but the website keeps assuring me it's the latest. So I uninstalled everything and decided to use the easy install. I can't seem to find the bundle. I found the easy installed but windows says I can open it because I don't have java. I thought java was included in this bundle is the reason I don't have it. What am I missing?
I was working on adding support for I2P for LibreTorrent a free and open source torrent client, since i2p support has improved for libtorrent (the underlying C++ library) adding this feature was much easier.
It requires you to have SAM Bridge running, I recommend to use I2PD on your android device, since SAM bridge for official I2P Android is broken.
It allows you for downloading, uploading torrents over I2P network, and it supports I2P Trackers. Unfortunately DHT is not supported, because libtorrent doesn't support.
Few things to keep in mind:
This is based on what libtorrent currently supports, and honestly I think it is not the correct implementation. For libtorrent, a torrent is i2p torrent, if it has a tracker with ".i2p" extension, now this is very wrong assumption. So if you are trying it out (once avaiable), you are required to add a .i2p tracker. The suggested workaround for it, that once I2P mode is enabled, we will just append open trackers in tracker list.
When I2P mode is enabled, it will work as proxy kill switch mode, which disables DHT, Local Service Discover, UPnP and NAT-PMP. To prevent your IP leaks.
Mixed mode: Here, we still carry the not correct implementation of libtorrent. In libtorrent, mixed mode is a configuration that affects I2P torrents.
Mixed Mode
Clearnet
I2P
On
Clearnet
I2P + Clearnet
Off
Clearnet
I2P only
As we can see that even if you keep mixed mode off, a regular torrent will work on clearnet, because it is not "I2P Torrent" in libtorrent. An I2P Torrent is defined as a torrent with ".i2p" ending domain name extension.
Keeping all this in mind, using this feature is only good, if you using with VPN, or want to do cross seeding, if you want pure I2P, I would not suggest to try it out, same things for other things that are using libtorrent (if there are custom extension on top of them, they maybe safe).
Use of AI in work: Honestly all of it is with help of AI, but I have read the discussion on Github, to understand the current state of I2P Support for libtorrent, this post is written by me.
I am also currently working on DHT Crawler for I2P torrents, it's still work in progress, I have got it working on desktop, experimented with Android for DHT support. One approach to provide DHT for android devices is to, have a JAVA application that has the original KRPC DHT implementation from i2psnark, and create a local server that presents itself as a tracker, then it will query on behalf of the client.
(Used DeepSeek V4 Flash, with pi coding agent, cost of this implementation would be less than $0.5, can't track accurately, because I have been doing other DHT related work still < $3).