i2pd icon indicating copy to clipboard operation
i2pd copied to clipboard

Mycelium network support

Open oooo-ps opened this issue 2 months ago • 5 comments

This is just the initial commit that implements the Mycelium network condition, which is quite similar to Yggdrasil but operates in the 0400::/7 range:

https://github.com/threefoldtech/mycelium

I have a few questions:

  1. does it make sense to make this contribution?
  2. is the openssl branch the correct one to fork the upstream?

UPD. While working on the second part, I found only one issue related to supporting multiple mesh networks: the router uses a single registry called eNTCP2V6MeshIdx. It might make sense to rename Yggdrasil members to "Mesh" or to separate the indexes into different stacks. Configuration options would depend on this implementation, as there are too many potential networks possible to make the router extensible without increasing the codebase.

oooo-ps avatar Oct 04 '25 03:10 oooo-ps

  1. No worth to do it at this point until it reaches few thousands routers
  2. Yes, openssl is right branch

i2pd was initially designed to support multiple mesh network Yes you need to rewrite it in many places, that's why it's not worth to do. A lot of work with tiny or no result.

orignal avatar Oct 04 '25 11:10 orignal

Yes, I'm worried that touching anything beyond the address range rule could damage the stability of the router. Maybe return to this subject later, as learning I2P for few days, this task seems harder than expected.

oooo-ps avatar Oct 04 '25 11:10 oooo-ps

If I was you I would start from a reseed server in the mycelium network. It's easy and doesn't require many changes.

orignal avatar Oct 04 '25 19:10 orignal

I'm running this one:

http://[505:6847:c778:61a1::9216]
  • with changed filter line

but I don't know how to collect the DB if my router running Yggdrasil-only mode. Seems I must allow all IPv6 interfaces and disable Yggdrasil one. But how to exclude Internet peers from handle, then.

oooo-ps avatar Oct 05 '25 10:10 oooo-ps

but I don't know how to collect the DB if my router running Yggdrasil-only mode. No difference

But I meant to implement the code in Reseed.cpp to support mycelium reseeds if you have a local interface with it.

orignal avatar Oct 05 '25 12:10 orignal