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
reply
Great, I will do this. Curious about the performance of a node running over i2p vs Tor?
reply
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.
reply
I2P enabled! How does the gossip work, if you are connect to only one I2P node does your node then discover others on I2P?
reply
I2Pd should automatically manage your tunnels. You can view the admin panel at
192.168.0.X:7070
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 127.0.0.1 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
reply
Cool, seems I'm connected to a bunch of I2P nodes. Cheers!
reply
I'll probably enable this once I migrate my node
reply
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.
reply
Not a node owner at present, but curious what is the difference between I2P and Nostr, and are the two even comparable?
reply
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.
reply
Can you do this on umbrel?
reply
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.
reply
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
reply
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
reply
Complete!
reply
reply
I thought both Tor and I2P use DHT (distributed hash tables) for the list of nodes, no?
reply
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.
reply
Thank you for this. I will be looking to migrate as I'm having tor related whirlpool issues.
reply
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.
reply
Does m y node support I2P?
reply
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.
reply