Comment by ๐ norayr
Re: "What is the purpose of Yggdrasil?"
imagine you have a laptop L0 at home and you have a laptop L1 with yourself, you came to a cafeteria and connected to wifi.
your friend has a home server in the same town as you live.
let's call it S0.
your other friend has a server in the cloud: S1.
and other friend has a server at home but in other town: S2.
all 3 servers have yggdrasil installed. they are not connected to global ygg network, i. e. neither of those added a yggdrasil host from global network as a peer.
they just added each other as peers.
you have configured both of your laptops, added all 3 servers as peers on each of you laptops.
2025-11-30 ยท 5 months ago
8 Later Comments โ
๐ norayr [mod] ยท Nov 30 at 00:45:
S0 is connected to S1, S2 (added S1, S2 as peers)
S1 is connnected to S0, S2
S2 is connected to S0, S1.
L0 is connected to S0, S1, S2
L1 is connected to S0, S1, S2
now you want to connect from your cafeteria to laptop at home via ssh.
since S0 is in your town, so when you connect from L1 -> L2, connection actually goes via S0.
you don't notice it, it is transparent for you.
also you don't know the route yggdrasil will choose, but it will choose the "best" route (what is best is a bit complicated: graph theory, spanning tree, dht), but it should be fastest and go via less nodes as a result.
๐ norayr [mod] ยท Nov 30 at 00:46:
so it is
L1 -> S0 -> L0
oh but your friends server is not accessible, he has power outage. then connection will be
L1 -> S2 -> L0
or maybe
L1 -> S1 -> S2 -> L0
or maybe
L1 -> S2 -> S1 -> L0
or maybe L1 -> S1 -> L0
we don't know.
but we know that if there's a way to route, yggdrasil will route and will choose the best way possible, whatever that means.
๐ท baran [mod] ยท Nov 30 at 04:08:
"local network" overlay over internet. without anonimity, because it is for stability and speed. for anonimity you need add firewall and other...
๐ norayr [mod] ยท Nov 30 at 11:15:
i think well, depends on how to define anonymity, if it means an first sight it is not obvious who you are irl, then yes, you are represented by your ip. and then it is knn amout you as much as you want to share.
however usually we define anonymity as can our ip and isp and endpoint be traced? yes, it can. so if you publish on your yggdrasil node web server information that someone powerful, government or oligarch, doesn't want to be published, then you can be traced and found.
for that i2p or tor should be used. and i2p can be used over yggdrasil.
you said local, it can be local and isolated but there's a global network as well. or there can be several big ones in theory.
๐ jsreed5 ยท Dec 06 at 04:23:
I'm very late to this thread, but I wanted to share some of my thoughts, particularly on what one can do with Yggdrasil.
While the core of Yggdrasil is its routing system--indeed, testing large-scale distributed routing schemes is the entire point of the project--the fact that it's implemented as an IPv6 overlay network gives it enormous power. Every device on the public Yggdrasil network acts as a direct peer, like how people used to use the mainline Internet before NAT and LANs became the norm. This already enables people to host any service they might host over the regular Internet, but using a decentralized routing system that's resilient against censorship.
However, what I love about Yggdrasil is that it can create private distributed networks completely separate from the public one. That's actually my primary use case for it.
I run two Yggdrasil nodes on the same server as my Gemini capsule. One is a public node that connects to other public peers and that anyone can use to join the main Yggdrasil network (found at tcp://jsreed5.org:18000). The other is a private node that only accepts connections from devices that I control, and it doesn't peer with any public nodes. I whitelist my devices by adding their public encryption keys to the the node's config file, then I add the private node (which is reachable by a public Internet address) as a peer to my devices.
This enables all of my devices to connect to each other as if they were on the same physical LAN or WiFi network, even if they aren't. I have a home servers and a NAS, and I run several local services on my computers over HTTP, SSH, RDP, FTP, and other protocols. Yggdrasil allows me to use them no matter where I am. I host a Minecraft server locally, and a friend of mine plays on it from his apartment across town using Yggdrasil. When the family stays in a hotel, we can connect to our home media server and watch our own movies. I even transfer data back and forth with NNCP over Yggdrasil, which is sometimes necessary if my signal is spotty.
Essentially, a private Yggdrasil network has similar functionality to a private VPN. In fact, the official Yggdrasil app on Android uses a VPN connection to open the required network interface. On Windows and Linux, though (and I assume on Mac), it uses its own network interface and can be used in conjunction with a VPN for extra security.
The only downside to a private Yggdrasil network is that, like a private VPN, the primary node must be located at an endpoint that is reachable over the public Internet. I could have used my home servers for that if I had a static IP address, but sadly, I don't. However, I do have a publicly-reachable Gemini capsule, so I use that instead. One could probably use DDNS to self-host a private node, but I've never tried it, so I can't say how well it works.
To be clear, I can do all these things over the public Yggdrasil network too, which would eliminate the need for a private primary peer. However, if I did that, I'd need to be much more stringent about security. On the public network, if I can reach a server at port 22, so can everyone else. I'd need to implement an extra layer of protection such as a DMZ server.
๐ norayr [mod] ยท Dec 07 at 23:59:
However, what I love about Yggdrasil is that it can create private distributed networks completely separate from the public one. That's actually my primary use case for it.
yes, it does not require bootstrap nodes, unlike tor, or ipfs, or tox.
๐ norayr [mod] ยท Dec 08 at 00:00:
and initially me and my friends were using it as private network, we did not have connection to a main yggdrasil.
๐ norayr [mod] ยท Dec 08 at 00:04:
so another use case.
i described here that i created that bonjour yggdrasil bridge. but it has some limitations, so i had to fork pidgin's bonjour plugin and create barev plugin.
it now supports flie transfers, status changes, of course chats, all over yggdrasil.
i'll write in details later.
we are testing it, and it works well.
next we'll write a mobile app and linux program and we came up with the solution on how to treat several devices with different ipv6 addresses as devices of the same person and send messages to all of them.
Original Post
What is the purpose of Yggdrasil? โ Could someone explain the purpose of this network? There is surprisingly little out there -- nothing on wikipedia, and the github site is strangely obtuse. Is this just a networking protocol? encrypted transport? What am I supposed to do with it and why would I?