Not that new anymore, right? It's at least 6 years old.
Not that new anymore, right? It's at least 6 years old.
Are there any projects attempting to build a worldwide P2P network that can replace the IP layer? Like a mesh network that can operate without verizon, cisco routers, etc? I know of some mesh network technologies aimed at small disconnected networks but nothing consumer-facing and supporting anything more than a few thousand nodes.
Yggdrasil is a wild one, though, agreed. Better a unique name than another thing called Gemini or Atom or something, though.
You could, of course, run a local wireless IP layer and use this to route, but peer-to-peer wireless has well-known scaling problems.
Still, it looks like a very interesting and reasonably well thoughout out idea.
Or are you thinking about IP layer, just not on the "internet", but on a separate network? If this, then how do you suggest connecting people together? Mesh becomes innefficient due to mesh routing at larger sizes and sooner or later you just reinvent "your own internet", but not worldwide, because you don't have the resources to actually connect the whole world together.
That has many benefits most importantly it makes adoption easy.
Now we run telco networks over IP for legacy apps. If this Yggdrasil stuff is successful, I presume eventually we’ll run IP over it for legacy systems.
Kudos to the author: I think it actually covers a lot of what you’d need to know: crypto identities, message formats, wire protocols, peering and stream semantics, spanning tree updates and root selection, the DHT, forwarding logic, sessions, etc. A couple things are TODOs like how to verify and sign root updates, and there’s some ambiguity in the tiebreaker algorithm for next-hop selection.
It seems to be very tightly coupled to TCP as the transport layer though, since all packets need to be delivered reliably and in the order they were sent, and need to be capable of being fragmented into smaller packets for varying MTU sizes.
[1] https://github.com/yggdrasil-network/yggdrasil-specs/blob/ys...
I understand that the problem is hard, has its own set of issues to solve beyond just technical, but this honestly makes it a non-starter for me. Anything that would be an actual internet evolution would need to include actual anonymity. Apart from this, I simply do not see what problem it actually solves for the existing internet that is not already solved with the current setup.
I use it as a VPN to connect my phone to my home network which are both peered privately to a VPS.
It's a bit convoluted vs directly connecting to home, but it was easier to set up than worrying about dynamic IPs, port forwarding, and exchanging Wireguard keys.
Multicast peering is neat in that I can access my home server directly using the same Ygg IP when I'm home. Problem is, I have to use an IP; the iOS app doesn't support configuring a custom DNS server for the Ygg VPN connection.
Headscale is really a better solution for this use-case, but it's kind-of neat to know there's an alternative Internet available with just an additional peering.
Yggdrasil - I just had to type the entire word out and even then autocorrect didn't tell me I had a word. I think the Mp3 vs Ogg Vorbis is perfect analogy.
Tbh, I wouldn't use a Scandinavian language word for a global application as it will automatically frustrate any English as a second language users - the words defy practically all rules of English, they frustrate me even as no matter if I can read them, I often have no idea how to pronounce them unless I've already heard them said.
This is one of those words I encountered many times before I first heard it said and actually knew how to say it.
Fred is right 100
> Irdest is a networking research project that explores different technologies and ideas on how to build more sustainable, user-controlled communication networks.
[0] https://irde.st/
The need for ordered/reliable links is mostly for convenience of development at this stage, but that can be fixed for sure.
One of your examples has a word within a word, so it's like half pronounced if you can say "structure" which I think difficult to mispronounce.
I'd like to see a P2P protocol that doesn't assume this but instead is designed to be completely decentralized, and anyone running the protocol can join. This protocol would provide addressing routing like our current IP protocol, and TCP/UDP etc can run on top of it. Would this be a separate "internet" or could it have gateways to the proper internet? Preferably the latter. There are obvious technical challenges with routing, addressing, mobility, all in a decentralized way but are they truly impossible?
I'm not an ESL so I can only imagine the difficulties but I do not think we should be robbing the world of beauty, history and nuance for the sake of business English. Few English speakers can spell or pronounce it correctly so it even becomes a shared difficulty.
Fun fact: several names of days of the week come from Norse mythology. Look up the names of the months if you want something more modern.
Setting up networks is easy and cheap. the expensive part is pulling cables and connecting people, that's why many countries have the local governments do that. If you live in an apartment building, you can easily create a separate network for all the apartments. If you want to connect to the next building, you'll need a lot more cables and someone to actually dig in the cable or erect the poles and use those to carry the cable... but who will pay for that? What if you want to connect to the next city over... who will pay for the cabling, digging etc? And of course, the paperwork? Underseas cable? Good luck with that.
It's not a protocol problem, it's a cost problem.
From a quick search it seems you do not even need a static IP address [0]
I am not familiar with Yggdrasil and can't wrap my hear around how this is possible !
Kademlia is a lot less intuitive, but by not ever assuming it's tables are correct, it handles and corrects inconsistency (and malicious nodes) better.
Chapter 6 of this pile of (my) crap https://scholarworks.gsu.edu/cs_diss/106/ talks about doing latency optimization on dht routing. Basically just embedding then network graph into a metric space.
Naturally this leads to slapping even more arcane fixes on top of that, like NAT port assignment oracles to adversarial interoperate with different port allocation strategies (random, sequential, single, etc.) by analyzing patterns in previous port assignments. Networking sucks.
I also know there's support for other transports like QUIC but TCP is the main default.
I use yggdrasil right now on all of my devices so I can ssh between them even if they are behind NAT.
Using termux on android and the yggdrasil android app I can access files located on my home computer while I'm on the go without storing them in a cloud somewhere.
Many peers will connect without a real contract, especially if you're both present on a peering fabric, but transit usually needs a contract because transit isn't mutually beneficial.
For some sort of overlay/alternative network, reliable transit seems highly likely to have a cost too. Probably not a contracted cost while it's experimental; and maybe optimistically, much lower than today's costs for IP transit, but still there would be a cost. Actually, IP transit costs are much lower today than years ago, but last mile transport costs are more important to your bill and running wires requires skilled labor and specific capital equipment, so it remains expensive; bandwidth capacity of wiring increases over time, but you still need one connection per home for best service; although wireless seems poised to reduce costs for good enough service in favorable conditions.
Yggdrasil Network - https://news.ycombinator.com/item?id=41669625 - Sept 2024 (3 comments)
Yggdrasil P2P mesh E2EE IPv6 network - https://news.ycombinator.com/item?id=30156551 - Jan 2022 (77 comments)
Yggdrasil – Early-stage implementation of an end-to-end encrypted IPv6 network - https://news.ycombinator.com/item?id=27577201 - June 2021 (102 comments)
Show HN: Yggdrasil Network – compact mesh routing experiment for mesh networks - https://news.ycombinator.com/item?id=18863554 - Jan 2019 (15 comments)
Announcing Yggdrasil Network v0.3 - https://news.ycombinator.com/item?id=18751991 - Dec 2018 (3 comments)
Yggdrasil: End-To-end Encrypted IPv6 Networking - https://news.ycombinator.com/item?id=18666245 - Dec 2018 (1 comment)
Update: 83% comparitive speed using a US QUIC peer, not bad actually...
One anecdotal example is the name of ‘GNU’. Somewhat often, I see English speakers on the internet mock the name for being difficult or odd to pronounce, and they usually end up explaining it by writing ‘guh-noo’, which somehow clarifies the matter. To me, ‘GNU’ reads naturally, I find the official explanation ‘like “grew” but with an “n”’ very clear, and I can’t fathom how ‘guh-noo’ can feel more clear or comfortable to anyone, because to me it just looks utterly ridiculous. So for deviating from English, I have a hard time seeing a background in other languages as anything but an advantage.
Development is pretty active, and the latest release just improved the routing algorithm by having it favour hops with the lowest latency which had a noticeable improvement.
If you're looking for a big community hub within the network you might be disappointed (you could always try to set one up!), but there are a lot of people using it for their own purposes and the protect is far from abandoned.
Yggdrasil is designed for physical links and multi-hop routing first and foremost. Internet peering is just a way to test/use/join the network until then.
Then again, I agree with you: it wasn't created yesterday.
If you want a crypto-key addressable p2p connection-network there is a somewhat recent project which does this rather well:
It punches through firewalls/NATs and establishes QUIC connections.
They have two already useful PoC's:
Why not just make a new TLD like .onion or .i2p and use base32?
Who knew that a bunch of disgruntled hackers and software pirates building a shittier version of the Internet wouldn't last?
[0] https://en.m.wikipedia.org/wiki/Athens_Wireless_Metropolitan...
The end product is:
#1 A sandboxing system that cannot reliably sandbox.
#2 A connection system that cannot reliably connect.
So now you have two problems.
And even this is a thing of papers and agreements, not a protocol issue.
Anyone can set any AS number and claim any IP range they want, the protocol doesn't care. If you're setting up "your own internet", you can make a new list of ASNs ad distribute IP ranges however you wish. But yeah.. transit (="cables") is expensive.
Yggdrasil is basically researching a replacement for BGP, so hole punching isn't a priority. (There is a 3rd party project that does something like this for Yggdrasil, but nebula is probably the better fully open source option.)
It's also completely open source, unlike tailscale. And something's that cool is that Yggdrasil can automatically peer over "unconfigured" layer 2 links so if you have a complex topology (like an actual mesh) it can be useful for that.
It's also stupidly simple to set up Yggdrasil in a dual WAN environment, which is nice.