0-OS v0.3.5 has been released and with it a long awaited feature, namely: the support for farms that are not IPv6 enabled yet.
As the grid has been conceived with a mindset to start with IPv6 first, so that it’s not an afterthought that would be needed to be addressed in the near future anyway, we need some form of IPv6 available even if the hosting network doesn’t provide IPv6.
0-OS v2 has been designed around the fact that a node needs to have an IPv6 public address. This choice was made to solve two problems: the limited availability of public IPv4 and the need to implement some complex IP management between nodes in one and the same farm.
Because each node in the grid must be able to connect to any other node, having public IPv6 address everywhere made it very easy, solving all these pesky NAT and unreachable node problems.
It becomes more of a problem when you start adding nodes that are fully hidden, like nodes running in people’s homes behind a NAT router (virtually all homes have 192.168.1.0/24 that then go to the Internet over IPv4 through a NAT router).
These nodes will never be reachable from outside and then would only be able to provide compute capacity for applications that don’t expose any service. In other words these nodes could only be used for containers and k8s clusters. 0-DB namespaces (our storage building block) wouldn’t even be possible on these nodes, as they would not be reachable.
To allow all types of nodes to provide both compute and storage capacity, these nodes need to be reachable by any other node in the network regardless of their network setup.
To achieve this, 0-OS has integrated Yggdrasil. Yggdrasil is an implementation of a fully end-to-end encrypted IPv6 network where nodes are part of a globally-agreed spanning tree.
It allows traffic to be forwarded between all nodes of the network.
That solves the “hidden node” problem. By running Yggdrasil on all the 0-OS nodes, they become part of the yggdrasil network too.
This in turn allows any node to expose services on top of an Yggdrasil IP. Since all 0-OS node are part of the yggdrasil network, there is no more “hidden nodes”.
You can find more information about Yggdrasil on their website: https://yggdrasil-network.github.io/
The yggdrasil integration into 0-OS will be executed in multiple phases. By going step by step, it allows us to monitor how the network behaves and scales before pushing for more features.
Here is a brief roadmap of what we have already done and what we want to do next.
Allow IPv4 only nodes to boot be part of the grid
Expose 0-DB server on yggdrasil IP
Allow containers to have an yggdrasil IP
Allow IPv4 only nodes to access IPv6 network