Ouroboros Frequently Asked Questions: Difference between revisions
No edit summary |
No edit summary |
||
Line 2: | Line 2: | ||
== Q: How does Ouroboros compare to [Tor, CJDNS, I2P, Wireguard, etc.]? == | == Q: How does Ouroboros compare to [Tor, CJDNS, I2P, Wireguard, etc.]? == | ||
The goal of Ouroboros is to tackle problems in the world of information transfer by re-establishing network architecture at a system level. | |||
As such, comparing Ouroboros to projects which rely on existing network architecture (IP/TCP, TLS, DNS) is akin to comparing a concrete foundation to a pre-existing structure. It is possible to move these structures onto the foundation (or build new ones!), but it is ineffective to compare Ouroboros to any existent networking protocol before any practical implementations have been built. | As such, comparing Ouroboros to projects which rely on existing network architecture (IP/TCP, TLS, DNS) is akin to comparing a concrete foundation to a pre-existing structure. It is possible to move these structures onto the foundation (or build new ones!), but it is ineffective to compare Ouroboros to any existent networking protocol before any practical implementations have been built. | ||
Until implementations exist which properly leverage the capacity of Ouroboros as an infrastructure, it is difficult to make a comparison to the specific use cases addressed by existing network paradigms. | Until implementations exist which properly leverage the capacity of Ouroboros as an infrastructure, it is difficult to make a comparison to the specific use cases addressed by existing network paradigms. | ||
== Why are you using C instead of (rust, golang, ...) == | |||
Our previous experience was building a RINA stack in C in Linux kernel space (IRATI), so we had a few years of experience developing in a spartan C environment. Since the Ouroboros project was initially targeting a user-space RINA stack that should be portable to constraint IoT devices, we hoped to leverage some of the work we did on IRATI. When we started early in 2016, rust was not really a thing, definitely not on small COTS IoT boards. Today we may or may not choose something else, but even in rust, the nature of what we are designing will require mostly unsafe code. Given what we're up against, complaints about the choice of programming language are the least of our worries. |
Revision as of 18:25, 12 August 2024
Ouroboros is a project with the capacity to make fundamental changes to the way we share information in the digital world. When encountering this project for the first time, plenty of people have questions: what it is, how it works, and how it compares to other projects. This is where you'll find the answers to some of the most common questions.
Q: How does Ouroboros compare to [Tor, CJDNS, I2P, Wireguard, etc.]?
The goal of Ouroboros is to tackle problems in the world of information transfer by re-establishing network architecture at a system level.
As such, comparing Ouroboros to projects which rely on existing network architecture (IP/TCP, TLS, DNS) is akin to comparing a concrete foundation to a pre-existing structure. It is possible to move these structures onto the foundation (or build new ones!), but it is ineffective to compare Ouroboros to any existent networking protocol before any practical implementations have been built.
Until implementations exist which properly leverage the capacity of Ouroboros as an infrastructure, it is difficult to make a comparison to the specific use cases addressed by existing network paradigms.
Why are you using C instead of (rust, golang, ...)
Our previous experience was building a RINA stack in C in Linux kernel space (IRATI), so we had a few years of experience developing in a spartan C environment. Since the Ouroboros project was initially targeting a user-space RINA stack that should be portable to constraint IoT devices, we hoped to leverage some of the work we did on IRATI. When we started early in 2016, rust was not really a thing, definitely not on small COTS IoT boards. Today we may or may not choose something else, but even in rust, the nature of what we are designing will require mostly unsafe code. Given what we're up against, complaints about the choice of programming language are the least of our worries.