Builders make choices. Not only about what a product should do, but how it should be built, and, more broadly, how technology as a whole should function. Any product design ultimately reflects the development team’s understanding of how their product fits into the larger technological landscape and how technological progress is achieved.
The following is a high-level overview of Kinode OS's design philosophy, along with the rationale for fundamental design choices. It demonstrates not only how we believe Kinode should be built and what it can accomplish, but how technology, altogether, advances.
Without further ado: our beliefs.
A single shared computing environment enables software to coordinate directly between users, services, and other pieces of software in a common language. Therefore, the best way to enable decentralized software is to provide an easy-to-use, general purpose node (that can run on anything from laptops to data centers) that runs the same operating system as all other nodes on the network. This environment must integrate with existing protocols, blockchains, and services to create a new set of protocols that operate peer-to-peer within the node network.
A wide array of companies and services benefit from some amount of decentralized infrastructure, even those operating in a largely centralized context. Additionally, central authority and centralized data are often essential to the proper function of a particular service, including those with decentralized properties. The Kinode environment must be flexible enough to serve the vast majority of the decentralization spectrum.
To use blockchains as mere databases would negate their unique value. Blockchains are consensus tools, and exist in a spectrum alongside other consensus strategies such as Raft, lockstep protocols, CRDTs, and simple gossip. All of these are valid consensus schemes, and peer-to-peer software, such as that built on Kinode, must choose the correct strategy for a particular task, program, or application.
Therefore, any serious decentralized network must identify and prioritize the features that guarantee permissionless and composable development. Those features include:
The above properties are achieved by governance. Successful protocols launched on Kinode will be ones that decentralize their governance in order to maintain these properties. We believe that systems that don't proactively specify their point of control will eventually centralize, even if unintentionally. The governance of Kinode itself must be designed to encourage decentralization, playing a role in the publication and distribution of userspace software protocols. In practice, this looks like an on-chain permissionless App Store.
Kinode is a novel combination of existing technologies, protocols, and ideas. Our goal is not to create a new programming language or consensus algorithm, but to build a new execution environment that integrates the best of existing tools. Our current architecture relies on the following systems:
In addition, Kinode is inspired by the Bytecode Alliance and their vision for secure, efficient, and modular software. We make extensive use of their tools and standards.
These principles are merely that: principles. Ultimately, our product will have to speak for itself. We believe it will, and that these guidelines will help us build software that reaches our lofty standards in a manner that is timely and efficient without sacrificing our decentralized ideals.