I call on to you, sovereign bitcoiner, to enable I2P to further strengthen the Bitcoin P2P network.
Be a part of making Bitcoin even more ungovernable! Join the early adopters in bootstrapping bitcoin on a redundant anonymity network to decrease reliance on Tor.
Tor is rather centralized. Although Tor nodes can be run by anyone, the nodes which participate in the network are all entered into a central list of nodes. I2P on the other hand, much like Bitcoin, has nodes gossiping instead and no central servers. This means Tor can be attacked and rendered unusable for periods of time, as has happened more and more lately, whereas I2P has no central points to attack.
Lightning, especially, is vulnerable to downtime. If a tor-only node is unable to communicate due to a DDoS attack on Tor, funds can be lost/stolen. It's very important that lightning implementations reduce their reliance on a single anonymity protocol. With greater I2P adoption on the base layer, it will hopefully encourage devs to add support for lightning implementations as well.
Bitcoin Core 22.0 enabled I2P over a year ago. Here's the doc to get started: https://github.com/bitcoin/bitcoin/blob/master/doc/i2p.md
You'll want to install I2Pd (a lightweight C++ I2P implementation) instead of the bloated Java implementation. You can install I2P alongside your node (much like Tor is already) or on a separate machine accessible by IP address.
Once you have an I2P router, you can also configure a web browser to use your router as a proxy and access the hidden services on the network. Here's an excellent video for accessing darknet over I2P:
Tor has gained more popularity because it doesn't require running a dedicated router. Instead, users connect to relays run by volunteers. As node runners, the barrier to running an I2P router is much smaller. Online privacy is under attack and the Tor network is a huge target. Let's build our defenses and bring a second player into the ring.
Notes to enable I2P on a RaspiBlitz, RaspiBolt or similar: https://github.com/rootzoll/raspiblitz/issues/2413#issuecomment-1013855483
Great, I will do this. Curious about the performance of a node running over i2p vs Tor?
I2P is much faster than Tor. Largely because it isn't being targeted by DDoS. It's infrastructure is also better equipped to deal with user demand.
The network latency doesn't impact performance that much on bitcoin-core. It's more an issue for LN where payment time is a function of routing node latency. In core, the P2P network is how nodes relay pending transactions and propogate blocks. Latency is really only a priority if you're a mining node. Since blocks confirm on the order of minutes, a few seconds of latency isn't that bad.
However, I've experienced Tor requests that take many minutes or timeout entirely. So having a fallback anonymity network could be an infinite improvement in that case.
I2P enabled! How does the gossip work, if you are connect to only one I2P node does your node then discover others on I2P?
I2Pd should automatically manage your tunnels. You can view the admin panel at
If it's not available, you may have to edit the config at /etc/i2pd/i2pd.conf and put your node's IP in place of for the admin panel host IP. Then restart I2Pd.
After I2P bootstraps for a few hours, it should be able to connect to most .i2p urls.
You can bootstrap Bitcoin core with the I2P nodes at the bottom of this file: https://github.com/bitcoin/bitcoin/blob/master/contrib/seeds/nodes_main.txt#L681
You can connect to these nodes with -addnode or -seednode in your configuration file (bitcoin.conf).
After Bitcoin core has peered with an I2P capable node, it will begin gossiping and peering with other I2P Bitcoin nodes as necessary.
Once you have connections you can view your I2P (and Tor) peers:
watch -t bitcoin-cli -netinfo 4
Cool, seems I'm connected to a bunch of I2P nodes. Cheers!
I'll probably enable this once I migrate my node
Awesome! Node bundles like umbrel and raspiblitz could do a lot to make I2P easier. Feel free to open issues or ask for the feature in any community you can.
Not a node owner at present, but curious what is the difference between I2P and Nostr, and are the two even comparable?
They're both protocols for arbitrary message sending over the Internet.
Nostr stands for "Notes and Other Stuff Transmitted by Relays".
Messages on Nostr are intended to be "published" meaning they are posted to relays and able to be accessed multiple times by many clients.
I2P stands for "Invisible Internet Project".
Messages on I2P are intended to be "delivered" to a single router much like a payment over LN.
Nostr a new protocol, not very battle tested.
I2P has been around since the early 2000's.
In Nostr, there are clients and relays.
In I2P there are only routers.
Nostr is more focused on censorship resistance. Messages on Nostr are signed, but the messages could also be encrypted and decrypted if published/viewed by clients that implemented encryption. Encryption isn't baked into the protocol.
Messages on I2P are onion routed like Tor or HTLCs on LN. Although, they call it "garlic routing" on I2P.
Can you do this on umbrel?
Yes, just ssh and install i2pd. Then edit your bitcoin.conf as the doc suggests. Restart Bitcoin app. Should be able to docker exec into the Bitcoin container to see I2P peers to confirm it's working.
Thanks but honestly I wouldn’t even know where to begin to start the download and knowing my luck I’ll blow up my node and lose access to my node’s funds
Umbrel is currently looking for feedback. Fill out their survey and ask nicely for I2P support at the end. https://us4.list-manage.com/survey?u=988de5c1824a0b5075b2cc279&id=ea34a56a73
I thought both Tor and I2P use DHT (distributed hash tables) for the list of nodes, no?
Correct. However, DHT is just a data structure. The two protocols build their DHT in different ways.
Tor relays advertise their presence to centralized discovery servers which help users have a complete view of the network topography.
I2P routers bootstrap their connections using tunnels to other routers. Then each router builds its own local view of the network over time. Similar to LN.
Thank you for this. I will be looking to migrate as I'm having tor related whirlpool issues.
Whirlpool may also have to integrate I2P. If so, drop an issue asking for support. It would be amazing if Bitcoiners made I2P even more popular than Tor one day.
Does m y node support I2P?
Currently, only bitcoin-core supports I2P. MyNode runs bitcoin-core so you could set it up if you're feeling like getting into the command line.
Maybe nicely ask the MyNode devs to support I2P in their UI and send them this post to explain.