frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Open in hackernews

Yggdrasil is an experimental compact routing scheme that is fully decentralised

https://yggdrasil-network.github.io/about.html
194•doener•2mo ago

Comments

gnabgib•2mo ago
Recently popular:

5 months ago (324 points, 107 comments) https://news.ycombinator.com/item?id=42155780

2022 (216 points, 78 comments) https://news.ycombinator.com/item?id=30156551

2019 as a Show (120 points, 15 comments) https://news.ycombinator.com/item?id=18863554

orbisvicis•2mo ago
Is firewalling the yggdrasil adapter susceptible to IP spoofing?
gerdesj•2mo ago
Some of us are old enough to remember a Linux distro called Yggdrasil. It was my first but certainly not my last.

Does this thing involve a MAC address?

beanjuiceII•2mo ago
some of us even still have Yggdrasil installation media
smackeyacky•2mo ago
I have a book and cd. I tried using the cd image with Qemu but I couldn’t work out how to get the CD interface going. It requires some ancient device emulation (I want to say the creative soundblaster CD interface) but I’m not sure the limited ones it knows about are in qemu.
genewitch•2mo ago
Try PCem It has ancient stuff. I got os/2 warp and win98 running fine (with voodoo graphics!) Having more trouble coming up with a plan to get bsd or Linux on it. So far I got Debian 9 installed and I'm going to install Gentoo from within on a new vhd.

I know 98 and warp aren't technically ancient, but I had gotten the Xerox star 8010 emulator running well yesterday and went to work on pcem.

makeworld•2mo ago
AFAIK no MAC addresses are involved. It assigns you a new IP address, internal to the network, a bit like a VPN.
evbogue•2mo ago
yah it's good for logging into computers or accessing servers behind NAT. It's kinda an antidote to this world that's still hooked on ipv4 like it's 1992 or whatever.
mindcrime•2mo ago
Previously on HN (sadly no discussion though)

https://news.ycombinator.com/item?id=40828774

kachapopopow•2mo ago
Why do I remember minecraft using yggdrasil at some point. Maybe just a name clash of a java library.
codetrotter•2mo ago
Yggdrasil is from Norse mythology. So I’m not surprised that a bunch of different people name software after it.

https://en.wikipedia.org/wiki/Yggdrasil

Just like many might pick cool and important names from Greek mythology for example, like Poseidon.

https://en.wikipedia.org/wiki/Poseidon

privong•2mo ago
Indeed; Yggdrasil is also the name of a set of models of the emission from stellar populations:

https://www.astro.uu.se/~ez/yggdrasil/ReadMe.txt

https://www.astro.uu.se/~ez/yggdrasil/yggdrasil.html

DigiEggz•2mo ago
Brings to mind the system that rules over the Digital World :)

https://wikimon.net/yggdrasill

jazzyjackson•2mo ago
wow thanks for the link, the UFO style ring interface floating over a honeycomb is extremely similar to a GUI I designed once, didn't realize Digimon had prior art on it.
Centigonal•2mo ago
https://minecraft.fandom.com/wiki/Yggdrasil
awkwardpotato•2mo ago
FYI, the Minecraft Fandom wiki is no longer maintained. The new wiki is https://minecraft.wiki/w/Yggdrasil
Centigonal•2mo ago
Thanks! I would edit my parent comment if I could.
api•2mo ago
The challenge with these schemes is always making them robust against intentional attacks.

It’s hard enough to do that for centrally regulated systems. There are whole giant companies like Cloudflare that mostly exist to do that.

With a fully decentralized mesh if someone finds a working attack there is no good way to coordinate a response.

Small hobby and research nets can get away with that, but if anything like this ever got popular or even close to mainstream it would be destroyed. This is especially true if there were any way to make money by ruining it.

nine_k•2mo ago
Is there no way to blacklist nodes?
dexterdog•2mo ago
Or throttle new node cration
Centigonal•2mo ago
Another related issue is that decentralized networks are often targeted by attackers more than centralized ones, since a common use case for these networks is sharing information that the central entity (or some power that can coerce the central entity) does not want shared, e.g. organizing in authoritarian regimes, illegal file sharing
fsflover•2mo ago
Could you solve this by running something like I2P on top of the mesh network? I2P has implemented strong protections against typical attacks.
jazzyjackson•2mo ago
I don't know how ygg handles nodes but there's no reason a mesh network has to just accept random new peers, you could do something like mTLS where peers have to present certificates distributed out of band.
Animats•2mo ago
> The challenge with these schemes is always making them robust against intentional attacks.

Right. You join the network by generating a random IPv6 address and telling someone about it. So anyone can generate vast numbers of dummy node addresses, which everybody has to track. Now you need spam filtering.

sunshine-o•2mo ago
Yes but from my understanding one should not tell anybody about their IP as it is directly derived from a public key [0].

So in practice if you have doubts that your private key might have been compromised you must change your IP ASAP.

So I guess serious Yggdrasil users rely rather on a solid DNS system to manage identities and configure things. They actually need it more than the public internet !

This is the problem the blockchain & Ethereum people bumped into quickly: the 'key = identity' paradigm is elegant but in practice you need an abstraction on top to do anything serious.

I see they do have a DNS infrastructure in place [1] but most of the network services point to IP addresses, what really doesn't make sense to me.

- [0] https://yggdrasil-network.github.io/privacy.html#network-ide...

- [1] https://yggdrasil-network.github.io/services.html#dns

ogurechny•2mo ago
There seems to be a misunderstanding. Yggdrasil is not a single network, it's a tool to make such networks. So if you have some computers with some ability to connect them, you can set them to peer in Yggdrasil, and instantly get an auto-configured irtual IPv6 network. (You can even slap some IPv4-to-IPv6 NAT over it, but we shouldn't mention crimes against humanity.)

It seems to me that the main goal of the project is automatic routing that promises that in any peer graph any peer can reach any other at least somehow, which is fine for many use cases. Only in case of moving big data or very different cost of links you might want to check the node hierarchy and set manual peering from X to Y and Y to Z to make traffic flow the way you want.

Public network is a volunteer-run test ground for real life usage, and a way to connect systems that can't connect directly because of NAT. Internal speed test that is 8 hops away on the other side of the world gives me 30 Mbps, closer one, in 5 hops, reaches 90 Mbps (and the local interface is 100 Mbps), so it has some throughput for casual users.

As far as I can understand, current latency-based routing selection is just the most simple way chosen to optimise the network across the whole world, and prevent random 200 ms hops back and forth to intermediate nodes. If traffic from nodes in one half of the tree not having direct connections to the other half goes through the central nodes, it seems that at the moment it's enough for owners of central nodes to peer with each other, and have enough bandwidth. In the future they might need to take the proportions of available channels into account.

bawolff•2mo ago
Is there a paper somewhere explaining their system in detail?
drob518•2mo ago
Yea, the website was conspicuously opaque about the protocol. Having lived in the networking and IP routing world for decades, that makes me suspicious that this thing is yet another non scalable system. But hey, I’m willing to be convinced.
easygenes•2mo ago
If this is interesting to you, there's also a new edge mesh protocol which would dovetail into it well called MeshCore. MeshCore is LoRa and MCU focused, works at L2. Ygg is L3 and could run at e.g. your LoRa SBC gateway to provide seamless global distribution of edge mesh chats and sensor relays.

https://github.com/ripplebiz/MeshCore https://youtu.be/fNWf0Mh2fJw https://chatgpt.com/share/681c281f-0a24-8011-8ec9-6d58ce3db0...

sunshine-o•2mo ago
I saw that with Reticulum, Yggdrasil is actually a "Backbone interface" [0] used to connect Reticulum instances. What makes a lot of sense.

- [0] https://reticulum.network/manual/interfaces.html#listeners

Ey7NFZ3P0nzAe•2mo ago
Related discussion by reticulum devs: https://github.com/markqvist/Reticulum/discussions/162
eternityforest•2mo ago
I'm stills waiting for the Meshtastic vs MeshCore vs Reticulum thing to shake out.... They all have pretty big disadvantages, most of which seem very fixable.

I think what they really need is cheap solar nodes that have external WiFi antennas, so they can mesh over point to point directional links.

LoRa meshing seems like it's eventually going to be a dead end in any kind of dense environments, WiFi just gets you so much more bandwidth, and the edge nodes only need ~2mA of power.

AFAIK only Reticulum and Meshtastic have software support for that ATM.

I have a proof of concept almost working using OpenDHT as a global routing backend for Meshtastic, but Meshtastic still has some security issues (No authentication on a lot of important stuff), and global routing is really only currently easy to do for unicast traffic.

But if they got rid of the channel hash thing, and instead they gave each channel a special receive address(like IPv6 multicast groups) with their own keypair, global routing would probably work fairly seamlessly.

I think ideally they'd change those node/channel IDs to rolling codes so you can't traffic analyze the global routing.

With MeshCore, it doesn't seem like there's documentation on what info the packets actually give you, so I'm not sure how that would work.

And then with Reticulum, there's no C++ implementation of LXML yet, no standalone devices, or anything like that, so I'm not sure if it can replace Meshtastic/MeshCore until that exists.

Meshtastic is also lacking some applications layer stuff, they have the same issue most IoT protocols have, tons of predefined packets for specific sensors, but no modbus-esque generic telemetry packets, no way to just say "Register 59 is 37.6, look up what that means in the register layout file with UUID Jfjeiuehbdhd"

I think Reticulum is closer to having that, with the "fields" thing.

I'm not sure how the global routing works on reticulum though, I get the impression every node needs to know about every other node with some kind of gossip protocol, but I could be completely wrong.

Reticulum also used Kivy for their mobile app, which doesn't feel as polished as Meshtastic, and it's licensed under some non-commercial creative commons thing that causes issues including it in distro repos and such, or so I've heard.

Meshtastic doesn't exist as a convenient Arduino library or Pip installable package or anything like that, it's not exactly very elegantly embeddable in existing apps, and even if it was, it doesn't have the generic abstractions to actually do custom stuff in a way the app understands.

It almost seems like we either need a heavily redesigned Meshtastic 3.0, or something completely new.

They're all amazing projects, but they're all missing something.

cyberax•2mo ago
Interesting. There's a fundamental vulnerability in mesh routing: you either have to control addressing, or a malicious actor can flood the network topology with bogus data.

Just imagine somebody generating 10000000000 addresses and flooding everybody with that information.

It looks like Yggdrasil doesn't address (ha) this vulnerability? It kinda side-steps it by requiring enrollment through an already trusted node?

mikeyg•2mo ago
at least in the original implementation of this protocol (cjdns) there was already a tiny bit of proof of work happening in address generation. forgive me as this knowledge is over a decade old but it involved finding a curvecp private key that scalmults into a public key that (maybe whose hash?) begins with some specific number. this number is what's actually used as the ipv6 address. and that specific number is the routable ipv6 prefix.

the process would be run again and again during configuration generation until a key that fit this criteria was found. one could up the difficulty of this process considerably.. though not in a protocol backwards-compatible way.

you also needed to find a peer.

but yeah that's a gnarly hole.

cyberax•2mo ago
> at least in the original implementation of this protocol (cjdns) there was already a tiny bit of proof of work happening in address generation.

It's just a 1 byte search, completely negligible from the performance standpoint. They look for a public key that has the SHA hash that starts with 0xFC, to indicate that it's not global IPv6 traffic.

I don't think it's possible to solve this, without either making a centralized addressing authority, or involving non-trivial amounts of real money via some blockchain.

getcrunk•2mo ago
Mesh/decentralized networks seem poised to finally take off and become widespread. Unfortunately I don’t think it will be in the form of a cyber utopia free of control but a tool of power and surveillance, networking ai powered robots (swarm based weapons) and other smart things
pharos92•2mo ago
Shortest path is fundamentally problematic in networks. The shortest path isn't always the best path.

The shortest path might be a 1Mbps link with high latency. The 'best' path might be several 100Mbps links with low latency chain together.

easygenes•2mo ago
Ygg doesn't operate strictly as a shortest path protocol. It prefers lowest latency links already and they're roadmapped to handle link cost / dynamic weighting / link congestion. They're targeting a blended weighted metric overlay which would certainly prefer the chain of quick/fat links.
jazzyjackson•2mo ago
I ask as someone hyped about decentralized protocol but only following ygg from a distance -- who are they building it for, is there a use case or commercial customer that wants this, or is it more of an idealistic/political endeavor ? I guess I'm wondering how mature the org behind it is, if they're setup for the long haul or taking steps forward when they can, on a hobbyist basis.
sunshine-o•2mo ago
It doesn't seem to be any formal org behind (and the main dev seems to work on NATS)

Most of the referenced public peers are in Russia, the US and Germany it seems [0]

- [0] https://publicpeers.neilalexander.dev/

eGQjxkKF6fif•2mo ago
I just installed it and it gave me a routable ipv6 address on my shitty little VPS that didn't have one. I'm guessing that if I put this on my laptop then that too will have an ipv6 address and I can communicate from my laptop to the server via ipv6, like tailscale; and vice versa I guess. Playing with it now. Basically link all of your devices to the network and it gets an IPv6; but ...the IP changes every time its run based on getting new keys. So, rolling keys by default? Haven't tested. But I guess if I keep the same key, the IPv6 that's assigned to it remains the same?

Will update later, because the yggdrasil website leaves me more confused than answering anything.

I've seen it posted and cheered about over socials (lemmy, hnews, reddit); might be cool to test.

From the docs: > However, autoconfigure mode allows you to quickly start Yggdrasil using sane-ish default settings, with yggdrasil -autoconf. In this mode, Yggdrasil will automatically attempt to peer with other nodes on the same subnet but will not attempt to connect to public peers by default. It also generates a random set of keys each time it is started, and therefore a random IP address each time.

yggdrasil[3510010]: 2025/05/08 08:37:16 Starting up...

yggdrasil[3510010]: 2025/05/08 08:37:16 Startup complete

yggdrasil[3510010]: 2025/05/08 08:37:16 Starting multicast module

yggdrasil[3510010]: 2025/05/08 08:37:16 UNIX admin socket listening on /var/run/yggdrasil/yggdrasil.sock

yggdrasil[3510010]: 2025/05/08 08:37:16 An error occurred starting TUN/TAP: permission denied

2025/05/08 08:37:16 Your public key is fab6caf3ae8895f5001398763db27d8e2f72f8278f44b543ba58b6658c>

yggdrasil[3510010]: 2025/05/08 08:37:16 Your IPv6 address is 200:a92:6a18:a2ee:d415:ffd8:cf13:849b

yggdrasil[3510010]: 2025/05/08 08:37:16 Your IPv6 subnet is 300:a92:6a18:a2ee::/64

So, saw a comment here from https://news.ycombinator.com/item?id=30156551 :

> I started using yggdrasil yesterday. The ability to get a static IPv6 address on a meshnet, with encrypted traffic by default, and the option to only accept inbound connections from public keys I trust is incredibly cool. Just like that I can access any of my devices that run ygg from anywhere using standard tools like git or ssh (or git-annex). It makes it really easy to network my devices together without having to screw around with split tunneling a wireguard server and create a DIY set of services to, for example, remotely manage my devices or sync things from one to the other, and that's just for starters. Feels like the Unix philosophy actually being useful for once

dhaavi•2mo ago
I was intrigued by Yggdrasil, so much that I built a similar network, also using concepts of other networks in that realm.

It uses a logical world map for improved address space allocation and routing as well as source routing. Private non-routable addresses for better privacy are planned.

https://mycoria.org

It will see more development over the next years, as I will be using it in an upcoming project.

Happy to answer any questions you have here.

lostmsu•2mo ago
What advantages does your project have over Yggdrasil?
randunel•2mo ago
Is there a non-encrypted alternative to these things? There's lots of projects with services both paid and free, all having encrypted data transmission.

I'm looking for encrypted coordination with unencrypted data transmission for performance reasons in IoT devices, because the data itself is already encrypted (e.g. only https going through the tunnel).

theknarf•2mo ago
How does this compare to Veilid (https://veilid.com/)?
nimoday•2mo ago
which layer does it work on? layer 2 or 3?

Bypassing Google's big anti-adblock update

https://0x44.xyz/blog/web-request-blocking/
655•deryilz•13h ago•558 comments

Reading Neuromancer for the first time in 2025

https://mbh4h.substack.com/p/neuromancer-2025-review-william-gibson
4•keiferski•47m ago•0 comments

Zig's New Async I/O

https://kristoff.it/blog/zig-new-async-io/
162•afirium•9h ago•111 comments

Switching to Claude Code and VSCode Inside Docker

https://timsh.org/claude-inside-docker/
101•timsh•1d ago•47 comments

Kimi K2 is a state-of-the-art mixture-of-experts (MoE) language model

https://github.com/MoonshotAI/Kimi-K2
334•ConteMascetti71•15h ago•80 comments

MacPaint Art from the Mid-80s Still Looks Great Today

https://blog.decryption.net.au/posts/macpaint.html
870•decryption•23h ago•180 comments

Hacking Coroutines into C

https://wiomoc.de/misc/posts/hacking_coroutines_into_c.html
78•jmillikin•7h ago•22 comments

Chrome's hidden X-Browser-Validation header reverse engineered

https://github.com/dsekz/chrome-x-browser-validation-header
162•dsekz•2d ago•35 comments

Aeron: Efficient reliable UDP unicast, UDP multicast, and IPC message transport

https://github.com/aeron-io/aeron
18•todsacerdoti•12h ago•5 comments

Experimental imperative-style music sequence generator engine

https://github.com/renoise/pattrns
14•bwidlar•3d ago•1 comments

C++: Maps on Chains

http://bannalia.blogspot.com/2025/07/maps-on-chains.html
8•signa11•2d ago•4 comments

Edward Burtynsky's monumental chronicle of the human impact on the planet

https://www.newyorker.com/culture/photo-booth/earths-poet-of-scale
40•pseudolus•5h ago•5 comments

Parse, Don't Validate (For C)

https://www.lelanthran.com/chap13/content.html
52•lelanthran•4d ago•13 comments

Bayeux Tapestry Will Return to the U.K. In 950 Years

https://news.artnet.com/art-world/bayeux-tapestry-british-museum-loan-2665313
9•andsoitis•1d ago•8 comments

Hill Space: Neural nets that do perfect arithmetic (to 10⁻¹⁶ precision)

https://hillspace.justindujardin.com/
5•peili7•1h ago•1 comments

Lost Chapter of Automate the Boring Stuff: Audio, Video, and Webcams in Python

https://inventwithpython.com/blog/lost-av-chapter.html
153•AlSweigart•15h ago•9 comments

ISRO successfully conducts hot tests of Gaganyaan propulsion system

https://www.thehindu.com/sci-tech/science/isro-successfully-conducts-hot-tests-of-gaganyaan-propulsion-system/article69790839.ece
6•Bluestein•16m ago•0 comments

Programming Affordances That Invite Mistakes

https://thetechenabler.substack.com/p/programming-affordance-when-a-languages
25•ingve•2d ago•9 comments

Light exposure at night predicts incidence of cardiovascular diseases

https://www.medrxiv.org/content/10.1101/2025.06.20.25329961v1
107•gnabgib•9h ago•74 comments

The fish kick may be the fastest subsurface swim stroke yet (2015)

https://nautil.us/is-this-new-swim-stroke-the-fastest-yet-235511/
213•bookofjoe•20h ago•141 comments

Two-step system makes plastic from carbon dioxide, water and electricity

https://phys.org/news/2025-06-plastic-carbon-dioxide-electricity.html
59•PaulHoule•3d ago•17 comments

A better Ghidra MCP server – GhidrAssistMCP

https://github.com/jtang613/GhidrAssistMCP
81•jtang613•14h ago•15 comments

Show HN: I made a JSFiddle-style playground to test and share prompts fast

https://langfa.st/
32•eugenegusarov•14h ago•5 comments

Second Variety, by Philip K. Dick (1953)

https://www.gutenberg.org/files/32032/32032-h/32032-h.htm
63•djoldman•3d ago•19 comments

Malware found in official gravityforms plugin indicating supply chain breach

https://patchstack.com/articles/critical-malware-found-in-gravityforms-official-plugin-site/
215•taubek•1d ago•43 comments

HNSW as abstract data structure: video intro to Redis vector sets

https://www.youtube.com/watch?v=kVApsFUeuEA
26•antirez•2d ago•0 comments

New Date("wtf") – How well do you know JavaScript's Date class?

https://jsdate.wtf
322•OuterVale•1d ago•192 comments

Working through 'Writing A C Compiler'

https://jollygoodsw.wordpress.com/2025/03/13/working-through-writing-a-c-compiler/
143•AlexeyBrin•20h ago•33 comments

Supreme Court's ruling practically wipes out free speech for sex writing online

https://ellsberg.substack.com/p/free-speech
573•macawfish•14h ago•760 comments

Exposing a web service with Cloudflare Tunnel (2022)

https://erisa.dev/exposing-a-web-service-with-cloudflare-tunnel/
96•sturza•3d ago•40 comments