Nostr I2P Relay Tutorial

So I saw Ryan's post on how you can run your own Nostr relay over Tor using Citrine and figured I would try the same on I2P.

nostr:nevent1qqs05djfp2nd3pq5yatdzmt6msxkkhy3h0gawdedup952tc5fl2uxhqprdmhxue69uhhwmm59ejx7amwd9ek7mn5dpjh2upwvdsj7q3qm64hnkh6rs47fd9x6wk2zdtmdj4qkazt734d22d94ery9zzhne5qxpqqqqqqzhathfn

It took quite a bit of trial error, but eventually I got it to work.

You will need:

- Android (unless Amethyst becomes available on iOS)

- Amethyst installed

- Citrine installed

- I2P installed

***Citrine Configuration***

First, you will need to set up your local relay on Citrine. The default port is 4869, but I changed it to 8080. You can change it to any port you want. You also need to put your npub as relay contact.

Once you have done that, you will also need to whitelist your npub in accept events signed by and events that refer to so you'll be allowed to post using the local relay.

It's also a good idea to enable authentication if you want WoT for your relay to lock things down.

***I2P Configuration***

Now that Citrine is configured. You must configure I2P so it can route Nostr traffic over the I2P network.

It doesn't matter what kind of I2P service you use for this step, but for my case, I preferred using I2Pd on Invizible Pro because it was the simplest way.

In your tunnels.conf, write the following configuration for your I2P Nostr relay:

/``````[Nostr Server]

type = server

host = localhost

port = 8080 # Same port that you used on Citrine

keys = nostr-server.dat

inbound.length = 8

inbound.quantity = 16

outbound.length = 8

outbound.quantity = 16

The configuration will be different if you use a different I2P iteration, such as I2P .

After doing this, I restarted I2Pd and then went to 127.0.0.1:7070 to get my address for my relay.

Once you see your relay, you have completed the steps on I2P.

***Adding relays to Nostr***

If you haven't already, add your Citrine relay to Amethyst by pressing your PFP and going to Relays. Once there, scroll down to Local Relays and add your Citrine relay, which will be ws://127.0.0.1:your-port

Once you've done, add your Nostr I2P relay address to your Public Outbox, Public Inbox, DM Inbox, and Private Home Relays. Your address will be in this format:

ws://your-address.b32.i2p:your-port

Once you have done that, hit Save and you are finished.

Now it may take a few minutes and you may start getting these errors, but they'll go away soon because I2P relays tend to be slower than Tor relays from my experience.

I have my own I2P Nostr relay if you want to try it out. I look forward to seeing how it functions over the next few days. Let just me know if you're interested and I'll add you to the whitelist. My relay is below.

ws://6skmgu3kgo527fpkofbi5srubrj4tqmxbozvn5ubrwh2jyo7lmva.b32.i2p:8080

Stay sovereign my friends!

#Nostr #Tor #I2P #I2Pd #Amethyst #Citrine #Tutorial #DIY #Zap #Citrine

Reply to this note

Please Login to reply.

Discussion

Sovereign AF!

Bookmarked. 👍

Very nice. Well done. I don't know much about i2p or i2pd inviszible pro but will try and look into it. Thanks!

ERROR: SOCKS: Host unreachable

now, ERROR: Connect timed out

now, ERROR: Unable to resolve host "6skmgu3kgo527fpkofbi5srubrj4tqmxbozvn5ubrwh2jyo7lmva.b32.i2p": No address associated with hostname

I'm getting that too when I try to add the .b32.i2p address into the public relay areas. I also used a proxyvpn rule to force all traffic over the i2p proxy.