I'm really interested in ouroboros as a transit layer for systems like kubernetes -- of course you have to kind of rethink the interconnections between resources an but ouroboros look simple and cleanly composable -- it really feels like it could fit well.
This is one of those things you really have to watch the video or understand the concept to have it spark your brain (or not). Here's a timestamped link to the part of the video I think is interesting[0].
What interests me is how simple, general, and composable it is though there are also some privacy gains (there's no need to know where a packet came from[1]). Let's say I write some application and today I want it to speak TCP, but tomorrow I want it to listen from a kafka queue, and the day after I want it to actually listen on UDP -- the benefit of using something like ouroboros is the layer under the communication could be anything. Take this one step further and you could switch out the configurations from underneath applications as well.
In an orchestrated context like kubernetes, IP networks introduce a lot of complexity -- the CNI (Container Network Interface) and setting up your networks, subnets, VPNs, etc requires that you bone up on what is basically "essential complexity" in the network space[2]. I've paid the cost somewhat (I'm not a dyed-in-the-wool sysadmin) so I can find my way around but every once in a while I lament how complex it all is when you put it together. With ouroboros, and applications that were coded to use ouroboros (or were coded to connect to a resource that is actually ouroboros underneath), I could actually skip setting up the entire network and maybe have all my messages go over something like a kafka queue. Whether this is a good idea or not aside, ouroboros is introducing an abstraction layer at the network layer -- but not just at one level... it's the entire stack.
For 90% of the usecases (especially this early), most of the networks made with ouroboros will be IP underneath, but I am really interested in the world where they won't be, and I think Ouroboros is a pretty elegant abstraction to take us there.
Hi, i watched the video but they didn't seem to talk about something i would find important in the description of a packet network: what's the routing algorithm? Is there actually any? If this is meant to run large-scale only on top of some ip network using already configured routing tables then this lowers the interest a lot for me: this ends up "just" being another overlay network, albeit with cool concepts and pretty adaptable tunneling possibilities.
The routing algorithm can be chosen in every layer, as addressing is per layer. We didn't reinvent the algorithms. So it would still be link state, distance vector, geometric routing, ... Since the addressing is internal to the layer, you probably won't have the same issues with geometric routing as currently in TCP/IP.
Ouroboros can run over the current internet so you can reuse existing hardware, but the end goal is to get rid of TCP/IP. We have layers over L1 and L2. In lab setups we never run it over TCP/IP.
As the previous commenter stated, since you can choose the routing algo at every layer, you could completely reproduce the current internet -- or choose to implement something better on some axis.
I read the documentation and the FAQ, but it's all very nebulous. It's supposedly better, but no explanation is given to how or in what way.
I'd love to have a clear and understandable answer. I'm sure the project would benefit from having such an explanation on their web page.