Files
dao-os-docs/src-zh/specifications/tech_overview.md
李东云 d8880439fc
Some checks failed
Build and Deploy Dao OS Docs / build-and-deploy (push) Failing after 2m4s
feat(books): generated books
2025-06-10 01:19:54 +08:00

3.7 KiB
Raw Blame History

技术总览

本文档为希望在大道 (Dao OS) 生态系统中进行构建或贡献的开发者,提供了关于架构、核心技术和指导原则的高阶概览。

技术指导原则

我们的工程决策由一套核心原则指引,以确保系统是健壮、可移植和开放的。

  • Web原生与可移植性 (Web-Native & Portable): 我们利用源自Web的技术如 WebAssembly来创建一个单一的、可移植的核心使其能运行在任何地方——桌面、手机、服务器和浏览器中。
  • 通过WASM实现多语言主义 (Polyglotism via WASM): 核心逻辑()被编译成 WebAssembly (WASM)。这使得“化身”可以用任何能够承载WASM运行时的语言如 Rust, Swift, Kotlin, TypeScript, Go 等)来编写,从而创造一个真正多样化的生态系统。
  • API优先 (API-First): 核心与宿主化身之间的交互由一个严格的、版本化的API契约来定义。这解耦了开发过程并允许双方独立演进。
  • 安全第一 (Security-First): 我们采用业界顶级的加密协议和“最小权限原则”设计。安全不是事后补救,而是一个先决条件。
  • 自由及开源软件 (FOSS): 整个核心协议和参考实现都是开源的,以促进透明度、社区信任和协作创新。

核心组件:开发者视角

从开发者的角度看,系统由两个主要部分组成,它们通过一个明确定义的边界进行交互。

  1. (Meta Unit - WASM 模块): 这是系统的可移植的、逻辑核心。它是一个有状态的、单实例的模块,主要使用 Rust 开发以保证其性能和安全性。它包含了数据管理、AI和P2P协调的所有业务逻辑但它没有直接访问外部世界的能力。

  2. 化身 (Avatar - 原生宿主): 这是“承载”的原生应用程序或运行时环境。其主要职责是:

    • 提供一个 WASM 运行时 来加载和执行
    • 提供用户界面(对于 Client 化身)。
    • 作为连接到宿主操作系统的桥梁,提供对文件系统、网络和其他系统资源的访问。

API 契约WASM 接口

化身之间的通信遵循一个清晰的、双向的API契约其精神类似于 WASI (WebAssembly 系统接口)。

  • yuan_* (从“元”导出): 导出一系列函数供化身调用。主要的入口点是 yuan_handle_request,它接收来自化身的结构化请求并进行处理。

  • avatar_* (导入到“元”): 声明了一系列它需要化身宿主提供的函数。这些函数是它通往外部世界的唯一窗口,允许它请求诸如记录日志(avatar_log)或发起网络请求(avatar_net_request)等操作。

  • 数据序列化 (Data Serialization): 为了高效、安全地跨越 WASM 内存边界传递复杂的数据结构,我们使用 Protocol Buffers (Protobuf)。数据被序列化成字节流,通过指针和长度传递,然后在另一端反序列化。

关键技术与协议

类别 技术 / 协议 用途
核心逻辑 Rust / WebAssembly (WASM) 性能、安全与极致的可移植性。
P2P网络 libp2p 模块化的节点发现(DHT)、传输和安全通道。
数据同步 无冲突复制数据类型 (CRDTs) 确保在没有中心服务器的情况下,各化身间的最终一致性。
身份 DID & VC (去中心化标识符 & 可验证凭证) 主权身份与可互操作的、基于密码学的信任。
数据序列化 Protocol Buffers (Protobuf) 用于API的高效、语言无关的数据结构。

这套模块化的、基于开放协议的体系,专为安全、可移植以及最重要的——社区贡献而设计。