AgoraDB - 多模态去中心化分析型数据库
AgoraDB
面向 Web3 的多模态去中心化分析型数据库
嵌入式。主权化。原生 P2P。
什么是 AgoraDB?
AgoraDB 是一个为去中心化网络构建的列式分析型数据库。它将现代数据湖(DuckDB、Snowflake)的查询能力带到 Web3 —— 无需中心化。
每个节点都是一个自主的数据主权单元。你的数据存在于一个 Space 中 —— 一个自包含的、DID 拥有的数据宇宙,容纳结构化表、属性图、向量嵌入和全文索引,全部由统一的 Iceberg Catalog 支撑。
┌─────────────────────────────────────────┐│ Space: space://did:agora:you/blog ││ ├─ posts (SQL table) ││ ├─ followers (Graph) ││ ├─ embeddings (Vector collection) ││ └─ search_index (Full-text) │└─────────────────────────────────────────┘为什么选择 AgoraDB?
| 问题 | AgoraDB 如何解决 |
|---|---|
| 中心化数据孤岛 | 每个 Space 都是主权的 —— 由你的 DID 拥有,存储在你选择的位置 |
| Web3 中没有 SQL | 完整的 PostgreSQL 兼容 SQL + 用于图的 Cypher |
| 昂贵的云分析 | 在本地设备上查询;P2P 同步替代云管道 |
| 浏览器无法进行数据分析 | WASM 引擎在浏览器中运行 SQL,将重操作委托给对等节点 |
| AI 智能体无法访问结构化数据 | MCP API 将 Space 暴露为 Claude、Cursor 等工具 |
它能做什么?
SQL 分析
-- 在 Parquet 文件上执行标准分析 SQLSELECT status, COUNT(*), AVG(totalprice)FROM ordersWHERE created_at > '2025-01-01'GROUP BY statusORDER BY COUNT(*) DESC;- 列式存储(Apache Parquet)带 Zone Map、Bloom Filter、ART 索引
- 向量化执行(Apache DataFusion)—— 1024 行 Arrow 批次
- 谓词下推 —— 过滤器下推到 Parquet 行组和页级别
- 时间旅行查询 ——
SELECT * FROM table TIMESTAMP AS OF '2025-06-01'
向量搜索
-- 近似最近邻搜索SELECT id, metadata, similarity(embedding, :query_vec) AS scoreFROM embeddingsORDER BY embedding <=> :query_vecLIMIT 100;- HNSW 索引用于余弦 / L2 / 内积
- 量化支持(float32 → int8)用于受限环境
图查询
-- Cypher 用于社交图、知识图MATCH (u:User)-[:FOLLOWS]->(f:User)WHERE u.created_at > '2025-01-01'RETURN f.name, f.follower_count;- 基于 CSR 的遍历 —— O(degree) 出边查找
- 图存储为 Parquet 边文件 + 顶点字典
多模态查询
-- 向量 → 图 → SQL 在一个查询中SELECT u.name, scoreFROM ( SELECT id, similarity(embedding, :vec) AS score FROM user_embeddings ORDER BY embedding <=> :vec LIMIT 100) vJOIN users u ON u.id = v.idJOIN user_graph g ON u.id = g.source_idWHERE g.relationship = 'follows' AND u.created_at > '2025-01-01'ORDER BY score DESC;架构
┌─────────────────────────────────────────────┐│ 接口层 ││ SQL · Cypher · MCP · HTTP · WASM · CLI │├─────────────────────────────────────────────┤│ 查询层 (Apache DataFusion) ││ SQL Parser → Logical Plan → Optimizer ││ (RBO + CBO) → Physical Plan → Execution │├─────────────────────────────────────────────┤│ 联邦规划器 ││ Remote/local fragmentation · Pushdown │├─────────────────────────────────────────────┤│ Catalog Bridge (Iceberg → DataFusion) ││ AgoraCatalogProvider · IcebergTableProvider│├─────────────────────────────────────────────┤│ 存储引擎 ││ Iceberg Metadata · Parquet Column Store ││ Zone Map · Bloom · ART · CSR · HNSW │├─────────────────────────────────────────────┤│ VFS (虚拟文件系统) ││ Local Disk · S3 · OPFS (Browser) · IDB │├─────────────────────────────────────────────┤│ 安全与 P2P ││ DID · UCAN · Arrow Flight · libp2p │└─────────────────────────────────────────────┘关键技术: Rust · Apache DataFusion · Apache Iceberg · Apache Parquet · Apache Arrow
节点类型
| 类型 | 位置 | 存储 | 计算 | 角色 |
|---|---|---|---|---|
| Full Node | NAS / Server / VPS | Local disk + S3 | Multi-core, 16GB+ | 权威存储、compaction、P2P 路由 |
| Edge Node | Desktop / Laptop | Local disk (limited) | Multi-core, 8GB+ | 查询服务、P2P 直连 |
| Browser Node | Browser (WASM) | OPFS / IndexedDB | Single-threaded WASM | 轻量级主权对等节点 —— 持有完整 Catalog,将重操作委托出去 |
Browser Node 是杀手锏。 它们为其 Space 持有完整的 Iceberg Catalog,可以独立回答查询,并且只通过 UCAN 认证的远程执行将大型 JOIN 或 compaction 委托给 Full Node。
当前进展
AgoraDB 开发路线图
| 状态 | 阶段 | 任务 | 进度 |
|---|---|---|---|
| ● | Phase 1: 查询引擎核心 | DataFusion 集成(SQL parser + optimizer + execution) | 100% |
| ● | Phase 1: 查询引擎核心 | Iceberg Catalog Bridge(CatalogProvider + TableProvider) | 100% |
| ● | Phase 1: 查询引擎核心 | CREATE SPACE DDL 执行 | 100% |
| ● | Phase 1: 查询引擎核心 | 旧引擎清理(5,700+ 行代码删除) | 100% |
| ● | Phase 1: 查询引擎核心 | 31 个测试通过,0 失败 | 100% |
| ◉ | Phase 2: 写入路径 + 联邦 | Append Buffer → Parquet flush → Iceberg commit | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | INSERT INTO ... VALUES SQL 支持 | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | Arrow Flight Server(gRPC) | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | 跨 Space 的 Federated JOIN | 0% |
| ◉ | Phase 2: 写入路径 + 联邦 | TPC-H Q1-Q5 benchmark on SF1 | 0% |
| ○ | Phase 3: 多模态 | GRAPH 模式(Cypher + CSR index) | 0% |
| ○ | Phase 3: 多模态 | VECTOR 模式(HNSW + similarity search) | 0% |
| ○ | Phase 3: 多模态 | FTS 模式(BM25 + inverted index) | 0% |
| ○ | Phase 3: 多模态 | MCP API for AI agents | 0% |
浏览器(WASM)
import { AgoraDB } from '@agoradb/sdk'; const db = await AgoraDB.open('myblog');const result = await db.sql(` SELECT id, title FROM posts WHERE published = true`);console.log(result.batches);使用场景
DApp 后端
每个 DApp 为每个用户部署一个 Space。即使 DApp 关闭,用户仍保留数据所有权。通过撤销 UCAN token 来撤销访问权限。
去中心化社交(PDS 2.0)
Browser Node 作为真正的个人数据存储 —— 保存帖子、社交图谱、媒体元数据。GRAPH 模式用于关注/粉丝。FTS 模式用于内容搜索。无需中心化中继。
链上分析
将链上数据(区块、交易、日志)转换为 Iceberg 表。订阅子集(特定合约、地址活动)。本地 SQL 分析并自动 P2P 同步 —— 无需 API 密钥,没有速率限制。
AI 智能体数据层
MCP API 将 Space 暴露为 Claude、Cursor 等的”工具”。UCAN token 将智能体访问范围限定到特定 Space 和行谓词。VECTOR 模式用于 RAG。FTS 模式用于关键词检索。
协议
Apache License 2.0
AgoraDB —— 每个节点都是主权的。每个查询都是本地的。每个 Space 都是你的。