Uqda Network (from Arabic عُقدة meaning "node") is an experimental software router and routing protocol for building effortless multi-hop computer networks. It is a fully decentralised design and only requires a small amount of state to work. It is predominantly a shortest-path routing scheme, whereby the network will attempt to find the most direct path from source to destination.
With support for a number of operating systems, it can be installed on everyday computers or devices.
Every network node is a router capable of forwarding traffic and connect to each other using peering connections which carry network traffic. Peerings can be set up over any IP network — whether that's a direct wired or wireless link, a local area network or even the Internet.
Uqda nodes automatically pass traffic to help it get closer to its destination where possible. This means that, even in a network that is only sparsely connected, all nodes will be reachable by all other nodes on that network. It doesn't even matter if a node is behind a NAT — once a peering is established, traffic flows in both directions over that peering, making it reachable to other network nodes.
Uqda is also designed to tolerate changes in the network. For example, if a link fails, the network will quickly self-heal and use other links to route traffic where available. This makes it suitable for use in mesh networks, where links go up and down frequently and the network topology often changes.
Each node on the network has a location-independent cryptographic identity and stable IPv6 addresses are generated from this key. This allows IPv6-supporting applications to work over Uqda largely without modification. The address is fully mobile and stays with the node as it moves around the network.
Many networks that exist today are hierarchical in nature, require extensive manual configuration and often rely on a certain degree of centralisation in order to scale. This often makes it difficult or impractical to set up networks quickly on an ad-hoc basis and so most people are heavily reliant on their Internet Service Providers (ISPs).
On the other hand, Uqda requires very little configuration in order to work and full multi-hop networks can be built up very quickly and easily using Uqda.
Nodes do not need to be assigned an address from a centralised authority; they can generate their own cryptographic identity and, more importantly, they can keep this address as they roam. Once peering connections are established, routing information is propagated quickly and automatically throughout the network.
This ability to provide full end-to-end routability between all network nodes means that Uqda is potentially an enabling technology for true edge computing scenarios, as well as real-world mesh networks. Most importantly, does not rely on the Internet to function, therefore it can be used to rapidly build networks in places with little or no existing infrastructure.
Uqda Network is derived from the Yggdrasil Network project. We maintain compatibility with Yggdrasil v0.5 protocol while implementing performance optimizations and improvements.
Uqda exists to complement, not compete with Yggdrasil, by serving users who prioritize operational performance and production readiness. See ATTRIBUTION.md for full details.
Uqda is currently an alpha-level project, with ongoing development and active maintenance. The primary goal is to test the scalability of the routing scheme and optimize performance for real-world use cases.
As an alpha project, it may be dangerous to rely solely on Uqda for any life-or-death workloads. There may be failure modes that we don't yet know about yet!