Files
dao-os-docs/src/specifications/tech_overview.md

47 lines
4.4 KiB
Markdown
Raw Normal View History

2025-06-10 01:19:54 +08:00
# Technical Overview
This document provides a high-level overview of the architecture, core technologies, and guiding principles for developers looking to build on or contribute to the Dao OS ecosystem.
## Guiding Technical Principles
Our engineering decisions are guided by a set of core principles to ensure the system is robust, portable, and open.
* **Web-Native & Portable**: We leverage technologies born from the web (like WebAssembly) to create a single, portable core that can run anywhere—on desktops, mobile phones, servers, and in the browser.
* **Polyglotism via WASM**: The core logic (`Meta Unit`) is compiled to WebAssembly (WASM). This allows "Avatars" to be written in any language (Rust, Swift, Kotlin, TypeScript, Go, etc.) that can host a WASM runtime, creating a truly diverse ecosystem.
* **API-First**: The interaction between the core `Meta Unit` and the host `Avatar` is defined by a strict, versioned API contract. This decouples development and allows for independent evolution.
* **Security-First**: We employ best-in-class cryptographic protocols and a "principle of least privilege" design. Security is not an afterthought; it is a prerequisite.
* **FOSS (Free and Open Source Software)**: The entire core protocol and reference implementations are open source to foster transparency, community trust, and collaborative innovation.
## The Core Components: A Developer's View
From a developer's perspective, the system consists of two main parts that interact via a well-defined boundary.
1. **The `Meta Unit` (WASM Module)**: This is the portable, logical core of the system. It is a stateful, single-instance module developed primarily in **Rust** for its performance and safety guarantees. It contains all the business logic for data management, AI, and peer-to-peer coordination, but it has no direct access to the outside world.
2. **The `Avatar` (Native Host)**: This is the native application or runtime environment that "hosts" the Meta Unit. Its primary responsibilities are:
* Providing a **WASM runtime** to load and execute the `Meta Unit`.
* Providing a **User Interface** (for Client Avatars).
* Acting as a **bridge** to the host operating system, providing access to the filesystem, network, and other system resources.
## The API Contract: The WASM Interface
The communication between the `Avatar` and the `Meta Unit` follows a clear, bidirectional API contract, similar in spirit to WASI (WebAssembly System Interface).
* **`yuan_*` (Exports from Meta Unit)**: The `Meta Unit` exposes a set of functions that the `Avatar` can call. The primary entry point is `yuan_handle_request`, which takes a structured request from the Avatar and processes it.
* **`avatar_*` (Imports into Meta Unit)**: The `Meta Unit` declares a set of functions that it needs the `Avatar` host to provide. These functions are its only window to the outside world, allowing it to request actions like logging a message (`avatar_log`) or making a network request (`avatar_net_request`).
* **Data Serialization**: To pass complex data structures across the WASM memory boundary efficiently and safely, we use **Protocol Buffers (Protobuf)**. Data is serialized into a byte buffer, passed as a pointer and length, and then deserialized on the other side.
## Key Technologies & Protocols
| Category | Technology / Protocol | Purpose |
| --------------------- | --------------------------------------------------------- | ------------------------------------------------------------ |
| **Core Logic** | Rust / WebAssembly (WASM) | Performance, safety, and ultimate portability. |
| **P2P Networking** | `libp2p` | Modular peer discovery (DHT), transport, and secure channels. |
| **Data Synchronization** | CRDTs (Conflict-Free Replicated Data Types) | Ensuring eventual consistency across Avatars without a central server. |
| **Identity** | DID & VC (Decentralized Identifiers & Verifiable Credentials) | Sovereign identity and interoperable, cryptographic trust. |
| **Data Serialization** | Protocol Buffers (Protobuf) | Efficient, language-agnostic data structures for APIs. |
This modular, open-protocol-based stack is designed for security, portability, and, most importantly, community contribution.