DHT and P2P swarm peers discovery + Yggdrasil mesh networks

I noticed that some nodes becomes unlisted from swarm in certain LAN/firewall condition.

I wonder how --routing=dhtclient daemon option can be related to that behaviour?

And to get sure all swarm members can see and be seen, do you think adding a new network interface like https://yggdrasil-network.github.io/about.html could help in some way supplementing P2P DHT layer of IPFS?

Off-topic, but how many peers should there be? For me (behind a firewall, after a few days of being up) the daemon has settled into a steady-state between 200 and 500 peers, with that number changing every few seconds, dropping or gaining 20 or 120 peers each time (which seems ill; I would have thought that the number of peers would have stayed fairly static over time).

Churn is expected. Some clients are browser nodes, so when the user navigates away or closes a tab, they’ll disconnect. Sometimes your node would be connecting to people to access a certain piece of content, or to provide that content to a user requesting it, but that’s a fairly short term relationship once everyone’s got what they need out of it.

I was about to post about using Yggdrasil to route content along the lowest-latency path. I wonder if it would be possible to run IPFS over Yggdrasil.

It should continue to work across Inter-Planetary distances, as the DHT will only have a “root” at a single spot but will span the “universe” of nodes.

I think Congestion Control (Yggdrasil Blog) and History of the World Tree, Part I (Yggdrasil Blog) might help others come to the conclusion that using Yggdrassil or a variant thereof might be a good idea, and maybe getting Yggdrassil’s Founder (@neilalexander on GitHub) to join the IPFS project may be as well.

1 Like

I think it should, as yygdrasil is just a new network interface…
I’ll try it in a while… Let me know if you make it before.

Good idea!! Did you contact him already?

I have not, but after some sleuthing, I know one might contact him via @neilalexander on http://lobste.rs/u/neilalexander. However, I do not have an account there, so I’m hoping someone else does. In addition, the GitHub user at https://github.com/Arceliar is the creator of the Yggdrasil-network repository.

If I’m not mistaken, Yggdrasil does the Spanning Tree Protocol to find a root for the whole Internet in order to have a routing protocol for mesh networks, but isn’t it even more centralized than the current Internet architecture that uses several tier 1 ISP networks instead of only one gigantic node that routes all the requests? Furthermore, the nodes of the network elect the root of the tree by finding the node with the lowest MAC address, but this is not secure because malevolent nodes could lie on their MAC address to be elected. If we use public keys instead of MAC addresses, malevolent nodes could process a lot of different public keys to find one that is low enough to be elected. And lastly, the last problem that I see but that could be somehow easily fixed is the incentive of the nodes (and especially the incentive of the root).