"Still - can't figure out what the project does and what would be the practical application for it."
It is a computer network, like the internet. As a computer network, the practical application for it is similar to practical application for the internet.^1 One of its advantages over the internet is that users control their own IP addresses, not ISPs, and peer-to-peer connectivity is made easier. There is also no need for the use of TLS and all the third parties that profit as email/web gatekeepers. A peer-to-peer network offers an escape from an internet and web full of self-appointed third party middlemen, e.g., RIRs, ICANN, "tech" companies, certificate authorities, etc., who exploit their position for profit.
Yggdrasil hands you a an IPv6 /64 subnet. Most nodes on Yggdrasil assign themselves a single, stable IPv6 address. They then communicate to other IPv6 nodes in the network. Traffic on the network is E2E encrypted using a cryptographic keypair. Because of this, you don't need to use anything like TLS on the network. Just share your IPv6 address with others and you're good to go.
I first learned of cjdns from a video I saw on YouTube in 2012.^2 I was impressed by this person being interviewed. He described the most fundamental problems with the internet in plain English anyone could understand and he actually had a working solution!
The interviewer however did not seem to understand what the author was talking about. :)
26:32 in the interview. The interviewer was dismissive of this very talented developer and the developer just falls silent because they made the moment awkward.
I was not aware CJDNS was unmaintained (or considered archaic). Do you have a resource comparing CJDNS, Yggdrasil, Zeronet and maybe other similar protocol? Bonus points if there's mentions of possibilities for interoperability (or incompatibilities) between these networks, and/or discussion about the shortcomings pointed out by the matrix people when developing their Pinecone routing scheme.
> I was not aware CJDNS was unmaintained (or considered archaic).
It seems (for some definition of seem lol) that more mindshare these days is around Ygg. CJDNS's author is working on something else at the moment primarily, and while they're still committed to working on CJDNS, their attention is split. Ygg is getting regular changes. Ygg's codebase being in Go also makes it a bit easier to get contributions in. But keep in mind that this may just be biased based on the circles I'm spending time in.
> Do you have a resource comparing CJDNS, Yggdrasil, Zeronet and maybe other similar protocol?
I wish I did. This would be a great thing to put together. Maybe I should spend some time properly comparing the two.
Kind of, in that you can use it to replace Tailscale if you want. Using Yggdrasil as a DIY Tailscale replacement is probably less work than manually configuring WireGuard, because it handles the mesh features of Tailscale for you.
All nodes are publicly routable rather than private, though. If you want to lock everything down to emulate Tailscale, you can just configure your firewall to only allow traffic from a whitelist of your devices' Yggdrasil addresses[1].
I don't really understand what you mean. Yggdrasil will automatically discover and peer with other hosts running Yggdrasil on your network. Connecting your network, across the internet to another network is no different than connecting to a public peer.
My biggest concern with Yggdrasil is that, without careful configuration of every node, anyone can connect to your Yggdrasil network and potentially expose it to the public Yggdrasil network.
I've moved on to experimenting with Nebula (made by Slack). This is made specifically for closed networks and has built in tools to restrict access. I still REALLY like Yggdrasil and will continue to experiment with it; just not for private meshing.
Current Internet "works" in a very complicated way, ISPs and apps handle all the hassles, wire and wireless infrastructures, effective routing, certificate authority, encryption, permission control.
Clients who won't notice until they want to form a network at wild themself. In addition, average app developers are error prone at cryptography which are potential security holes.
Yggdrasil deals all of them as an all in one solution. Ad-hoc WiFi is enough to form a network. IP address is username, routing address and public key. App built on Yggdrasil is also freed from dealing with encryption and permission control.
The claims around "scalable" and "self-healing" are very vague indeed.
Yggdrasil is just an overlay over the existing Internet, not a replacement, which removes a lot of its usefulness.
Perhaps this means, in theory, that if you switch between multiple ISPs (e.g. phone + ADSL) or have dynamic IPv4 address, the IPv6 connectivity over Yggdrasil will stay the same.
First of all, its is a research project. The owners are very clear about that and love to repeat its lack of any guarantees ;-)
Personally I've been using it for a while and its indeed living up to its promises, but ymmd.
It is indeed an overlay network by the simple rule of that being something that people can use. Technically the guys require the underlying protocol to keep order (one after another) in the packages for the stuff to work. Which is why building it on top of tcp/ip makes sense. Note that the ordering requirement is likely to be removed in a future iteration, again this is a research project.
Ideas like doing a mesh using antenna's in your city are thus, for now, out of reach. But the core concepts and approaches will likely map very nicely to such a usecase and the lessons learned as an overlay will help such a future design.
The public network is currently around 4000 nodes, which is why "scalable" is indeed meant to be vague. Tests of a million nodes are going to be required, probably in a future protocol iteration, to make clear statements about how scalable it really is. Signs are good, DHT usage is still very low while we saw a doubling of network size in the last 6 months.
Reading https://yggdrasil-network.github.io/about.html it's even more unclear. They claim to have invented something much better than traditional routing but there is no mention of how Yggdrasing perform bandwidth/latency/cost-aware routing.
If you are interested, I suggest you stop by on the matrix room and chat about the different topics. Its rather large and I'm not a developer on the project, just someone learning from those better than me. Mostly in that room.
Yggdrasil doesn't need Internet but existing IPv6/IPv4. Ad-hoc Wifi or local router with multicast support is enough for Yggdrasil to run automatically.
I read the "About" page.
I read project's Github page.
Still - can't figure out what the project does and what would be practical application for it?.
Is it something like Tailscale?