-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
7f74831
commit c5c801b
Showing
13 changed files
with
115 additions
and
93 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
# In-Depth Guide: Chess App | ||
|
||
This guide will walk you through building a very simple chess app on Kinode OS. | ||
This guide will walk you through building a very simple chess app on Kinode. | ||
The final result will look like [this](https://github.com/kinode-dao/kinode/tree/main/kinode/packages/chess): chess is in the basic runtime distribution so you can try it yourself. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,44 +1,53 @@ | ||
# Design Philosophy | ||
The following is a high-level overview of Kinode OS's design philosophy, along with the rationale for fundamental design choices. | ||
|
||
The following is a high-level overview of Kinode's design philosophy, along with the rationale for fundamental design choices. | ||
|
||
### Decentralized Software Requires a Shared Computing Environment | ||
|
||
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. | ||
|
||
### Decentralization is Broad | ||
|
||
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. | ||
|
||
### Blockchains are not Databases | ||
|
||
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. | ||
|
||
### Decentralized Software Outcompetes Centralized Software through Permissionlessness and Composability | ||
|
||
Therefore, any serious decentralized network must identify and prioritize the features that guarantee permissionless and composable development. | ||
Those features include: | ||
* a persistent software environment (software can run forever once deployed) | ||
* client diversity (more actors means fewer monopolies) | ||
* perpetual backwards-compatibility | ||
* a robust node network that ensures individual ownership of software and data | ||
|
||
- a persistent software environment (software can run forever once deployed) | ||
- client diversity (more actors means fewer monopolies) | ||
- perpetual backwards-compatibility | ||
- a robust node network that ensures individual ownership of software and data | ||
|
||
### Decentralized Software Requires Decentralized Governance | ||
|
||
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. | ||
|
||
### Good Products Use Existing Tools | ||
|
||
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: | ||
* ETH: a trusted execution layer | ||
* Rust: a performant, expressive, and popular programming language | ||
* Wasm: a portable, powerful binary format for executable programs | ||
* Wasmtime: a standalone Wasm runtime | ||
|
||
- ETH: a trusted execution layer | ||
- Rust: a performant, expressive, and popular programming language | ||
- Wasm: a portable, powerful binary format for executable programs | ||
- Wasmtime: a standalone Wasm runtime | ||
|
||
In addition, Kinode is inspired by the [Bytecode Alliance](https://bytecodealliance.org/) and their vision for secure, efficient, and modular software. | ||
We make extensive use of their tools and standards. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,19 @@ | ||
# The Kinode Book | ||
|
||
Kinode OS is a decentralized operating system, peer-to-peer app framework, and node network designed to simplify the development and deployment of decentralized applications. | ||
It is also a *sovereign cloud computer*, in that Kinode can be deployed anywhere and act as a server controlled by anyone. | ||
Kinode is a decentralized operating system, peer-to-peer app framework, and node network designed to simplify the development and deployment of decentralized applications. | ||
It is also a _sovereign cloud computer_, in that Kinode can be deployed anywhere and act as a server controlled by anyone. | ||
Ultimately, Kinode facilitates the writing and distribution of software that runs on privately-held, personal server nodes or node clusters. | ||
|
||
You are reading the Kinode Book, which is a technical document targeted at developers. | ||
|
||
If you're a non-technical user: | ||
|
||
- Learn about Kinode at the [Kinode blog](https://kinode.org/blog). | ||
- Spin up a hosted node at [Valet](https://valet.kinode.org/). | ||
- [Follow us on X](https://x.com/intent/follow?screen_name=KinodeOS). | ||
- Join the conversation on [our Discord](https://discord.gg/mYDj74NkfP) or [Telegram](https://t.me/KinodeOS). | ||
|
||
If you're a developer: | ||
|
||
- Get your hands dirty with the [Quick Start](./quick-start.md), or the more detailed [My First Kinode Application](./build-and-deploy-an-app.md) tutorial. | ||
- Learn how to boot a Kinode locally in the [Installation](./install.md) section. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,21 +1,21 @@ | ||
# kit | ||
|
||
[`kit`](https://github.com/kinode-dao/kit) is a CLI tool**kit** to make development on Kinode OS ergonomic. | ||
[`kit`](https://github.com/kinode-dao/kit) is a CLI tool**kit** to make development on Kinode ergonomic. | ||
|
||
## Table of Contents | ||
|
||
* [Installation](./kit/install.md) | ||
* [`kit boot-fake-node`](./kit/boot-fake-node.md) | ||
* [`kit new`](./kit/new.md) | ||
* [`kit build`](./kit/build.md) | ||
* [`kit start-package`](./kit/start-package.md) | ||
* [`kit build-start-package`](./kit/build-start-package.md) | ||
* [`kit remove-package`](./kit/remove-package.md) | ||
* [`kit chain`](./kit/chain.md) | ||
* [`kit dev-ui`](./kit/dev-ui.md) | ||
* [`kit inject-message`](./kit/inject-message.md) | ||
* [`kit run-tests`](./kit/run-tests.md) | ||
* [`kit connect`](./kit/connect.md) | ||
* [`kit reset-cache`](./kit/reset-cache.md) | ||
* [`kit boot-real-node`](./kit/boot-real-node.md) | ||
* [`kit view-api`](./kit/view-api.md) | ||
- [Installation](./kit/install.md) | ||
- [`kit boot-fake-node`](./kit/boot-fake-node.md) | ||
- [`kit new`](./kit/new.md) | ||
- [`kit build`](./kit/build.md) | ||
- [`kit start-package`](./kit/start-package.md) | ||
- [`kit build-start-package`](./kit/build-start-package.md) | ||
- [`kit remove-package`](./kit/remove-package.md) | ||
- [`kit chain`](./kit/chain.md) | ||
- [`kit dev-ui`](./kit/dev-ui.md) | ||
- [`kit inject-message`](./kit/inject-message.md) | ||
- [`kit run-tests`](./kit/run-tests.md) | ||
- [`kit connect`](./kit/connect.md) | ||
- [`kit reset-cache`](./kit/reset-cache.md) | ||
- [`kit boot-real-node`](./kit/boot-real-node.md) | ||
- [`kit view-api`](./kit/view-api.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.