Files
dao-os-docs/src-zh/specifications/tech_overview.md
2025-06-11 10:43:22 +08:00

3.8 KiB
Raw Blame History

技术总览

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

技术指导原则

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

  • Web原生与可移植性 (Web-Native & Portable): 我们将源自Web的技术如 WebAssembly 和现代 Web UI 框架)作为应用开发的主路径。这能创建一个单一的、可移植的核心,使其能运行在任何地方。
  • 通过WASM实现多语言主义 (Polyglotism via WASM): 核心应用逻辑(服务模块)被编译成 WebAssembly (WASM)。这使得逻辑部分可以用 Rust, Go 等语言编写。
  • API优先 (API-First): 应用逻辑和用户界面之间的交互由一个严格的、版本化的API契约来定义以实现真正的解耦。
  • 安全第一 (Security-First): 我们采用业界顶级的加密协议和“最小权限原则”设计,所有第三方应用逻辑都运行在安全的沙箱中。
  • 自由及开源软件 (FOSS): 整个核心协议和参考实现都是开源的,以促进透明度、社区信任和协作创新。

核心组件:开发者视角

从开发者的角度看,“大道”应用由一个后端的“灵魂”和一个前端的“皮囊”组成,它们通过一个明确定义的边界进行交互。我们将开发路径设计得尽可能地平易近人。

1. 应用服务模块 (WASM 后端)

这是第三方应用的可移植的、逻辑核心。它是一个有状态的 WASM 模块,主要使用 Rust或其他WASM兼容语言开发。它包含了所有的业务逻辑并且是唯一能请求访问用户“第二大脑”或其它核心服务的组件。

2. 应用 UI (前端)

主路径:面向“大道 Web 化身”进行开发

为了最大化可移植性并降低入门门槛构建“大道”应用UI的主路径是创建一个标准的 Web 应用(使用 React, Vue, Svelte 等)。

这个 Web UI 运行在我们官方的、安全的**“大道 Web 化身”容器之内该容器跨所有平台iOS, Android, 桌面端)。你的 Web UI 与你的 WASM 后端之间的通信,通过我们提供的一个安全的 dao.js JavaScript 桥来处理。这意味着,开发者只需编写一个 WASM 后端和一个 Web UI 前端**,他的应用就能运行在所有地方。

高级路径:构建原生化身外壳

对于那些需要深度平台集成或极致原生性能的开发者我们依然保留了构建一个完全原生UI“皮囊”的可能性。这个原生应用将简单地作为的另一个宿主,并通过 API 契约与同一个 WASM 后端服务通信。这被视为一个可选的增强项,而非必需项。

API 契约:dao.js 桥接脚本

对于基于 Web 的 UI通信契约通过注入到 webview 中的 window.dao JavaScript 对象来暴露。开发者使用这个桥接脚本,将经过 Protobuf 序列化的请求发送给运行在中的应用服务模块,并异步地接收响应。

关键技术与协议

类别 技术 / 协议 用途
后端逻辑 Rust / WebAssembly (WASM) 性能、安全与极致的可移植性。
前端UI Web 技术栈 (HTML, CSS, JS/TS) 跨平台 UI 开发的主路径。
P2P网络 libp2p 模块化的节点发现、传输和安全通道。
数据同步 无冲突复制数据类型 (CRDTs) 确保各化身间的最终一致性。
身份 DID & VC 主权身份与可互操作的、基于密码学的信任。
数据序列化 Protocol Buffers (Protobuf) 用于API的高效、语言无关的数据结构。

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